C++错误 - 'char' 和'int'之前的预期主表达式
C++ error - expected primary expression before 'char' and 'int'
#include<iostream>
#include<cstring>
using namespace std;
class Employee
{
char name[5];
int id;
int age;
public:
Employee(char* a, int b, int c)
{
strcpy(name, a);
id=b;
age=c;
}
};
class Officer: public Employee
{
char officer_cadre[3];
public:
Officer(char* a, int b, int c, char* d):Employee(char* a, int b, int c)
{
strcpy(officer_cadre, d);
}
};
int main()
{
Officer o1("Nakul", 1, 2, "ABC");
return 0;
}
上面的代码很简单,但我无法弄清楚为什么编译器会抛出诸如"字符之前的预期主表达式"和"int 之前的预期主表达式"之类的错误。
在此行
Officer(char* a, int b, int c, char* d):Employee(char* a, int b, int c)
您应该只传递 a、b 和 c。相反,您使用语法来声明 a、b 和 c。当只引用它们时,您不需要这些类型。IE你应该做的:
Officer(char* a, int b, int c, char* d):Employee(a, b, c)
您可能只是不小心将声明复制粘贴到子类的构造函数中。
更改此行:
Officer(char* a, int b, int c, char* d):Employee(char* a, int b, int c)
对此:
Officer(char* a, int b, int c, char* d):Employee(a,b,c)
我也对你宣布officer_cadre感到关切。 它是一个字符指针数组,但没有内存分配。 这是你的意思吗?
更改
char* officer_cadre[3];
自
char officer_cadre[3];
相关文章:
- 在 C++ 中使用正则表达式错误时出现问题 括号表达式中的范围无效
- C++ 标记之前预期主表达式'('错误
- 正则表达式中带有卷轴大括号的正则表达式错误
- C++初学者错误:主要表达式错误
- 代数树表达式C++错误:未解析的外部符号"Public:_thiscall AlgebraicTreeExpression::~AlgebraicTreeExpression(void) ..."
- 使用多线程处理对象数组 - 无效使用 void 表达式错误
- 为什么 if constexpr 不会使这个核心常量表达式错误消失?
- 提升正则表达式错误:未初始化的提升::match_results
- C++比较表达式错误
- C++ "主表达式"错误
- C++ 正则表达式错误(未处理的异常)
- 'this'不能用于常量表达式错误 (C++)
- 代码块引发有关for_each的预期主表达式错误
- Boost Regex中的命名子表达式错误
- C++之前的主要表达式错误
- Ubuntu 上的正则表达式错误
- C++正则表达式错误
- 理解常量表达式错误
- 成员函数和预期的主表达式错误
- Xcode中应有表达式错误