我想在我的代码中加入一些警告或错误.我正在使用visual studio 2010.
我曾经#error和#warning在Xcode,但视觉工作室不知道这些指令.
以下代码产生编译时错误:
'
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
我想使用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应该在宏名称中允许表示法?