错误:预期标识符在“公共”之前,预期“{”在“公共”之前
error: expected identifier before ‘public’, expected ‘{’ before ‘public’
我遇到了这个奇怪的错误,我无法解决。
class BaseClass
{
public:BaseClass(const char* aHow = NULL)
{
std::strcpy(ivHow,aHow);
}
char ivHow[512];
};
class DerivedClass : public BaseClass
{
DerivedClass (const char* dcHow):BaseClass (dcHow){}
};
我收到以下错误:
../trunk/inc/Sample.h: In constructor ‘DerivedClass::DerivedClass(const char*)’:
../trunk/inc/Sample.h: error: expected identifier before ‘public’
../trunk/inc/Sample.h: error: expected ‘{’ before ‘public’
你必须声明 BaseClass public
的构造函数。通过这样做,可以从对象可见的任何位置访问类的成员,如下所示:
class BaseClass
{
public: // or protected
BaseClass(const char* aHow = NULL)
{
std::strcpy(ivHow,aHow);
}
};
默认情况下,类的所有数据成员都设置为private
,因此只能从同一类的其他成员或其好友中访问它们。
正如Ivaylo Strandjev在评论中指出的那样,该结构也可以设置为protected
,因为
受保护的成员可以从其同一类的成员及其朋友访问,也可以从其派生类的成员访问。
默认情况下,成员是私有的,请执行
class BaseClass
{
protected: //or public
BaseClass(const char* aHow = NULL)
{
std::strcpy(ivHow,aHow);
}
char ivHow[512];
};
相关文章:
- c++库的公共头文件中应该包含什么
- 如何确保C++函数在定义之前声明(如override关键字)
- 将公共但非静态的成员函数与ALGLIB集成
- C++从另一个类访问公共静态向量的正确方法是什么
- 为什么在定义函数之前先声明它
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 如何找到2个单链表的公共节点
- 将地址分配给本地指针后,公共对象的变量将消失
- 程序在执行程序的其余部分之前退出
- 公共与私人继承
- 如何将模板转换为C++11之前的模板
- '||'之前的预期主要表达
- 如何从另一个文件继承私有成员变量和公共函数
- (C++)为什么静态成员可以在初始化之前使用
- 标记 '","' 之前的预期主表达式
- 如何从子成员函数修改父公共成员变量
- 为C++03编译器编写部分unique_ptr,该编译器与较新的编译器在公共代码库上运行
- C++的解析器在可以区分比较和模板实例化之前会做什么?
- 错误:预期标识符在“公共”之前,预期“{”在“公共”之前
- 我无法通过类 Artist 的公共方法修改任何私有字段。我尝试在函数名称之前添加引用(&),但崩溃了