小编Ser*_*upu的帖子

强制警告/错误

我想在我的代码中加入一些警告或错误.我正在使用visual studio 2010.

我曾经#error#warning在Xcode,但视觉工作室不知道这些指令.

visual-studio-2010 visual-c++

10
推荐指数
3
解决办法
1万
查看次数

具有私有基础的函数成员指针

以下代码产生编译时错误:

' base::print':无法访问类中声明的私有成员' base_der'

但是,我已public在派生类中创建了该成员.为什么这不起作用?

#include <iostream>

using namespace std;

class base
{
public:
    int i;
    void print(int i)
    {
        printf("base i\n");
    }
};

class base_der : private base
{
public:
    using base::print;
};

int main()
{
    // This works:
    base_der cls;
    cls.print(10);

    // This doesn't:    
    void (base_der::* print)(int);
    print = &base_der::print; // Compile error here
}
Run Code Online (Sandbox Code Playgroud)

c++ member-function-pointers member-pointers implicit-conversion private-inheritance

5
推荐指数
2
解决办法
509
查看次数

你能在#define宏名中使用ab表示法吗?

我想使用Visual Studio 2008或2010声明一个定义,如下所示:

#define a.b c.d
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误C2008:'.' :宏定义中出乎意料

我看到我被允许创建这样的定义:

#define a c.d
Run Code Online (Sandbox Code Playgroud)

是否a.b应该在宏名称中允许表示法?

c c++ visual-studio visual-c++ c-preprocessor

1
推荐指数
1
解决办法
571
查看次数