我使用链接列表来存储有关客户的数据:
typedef struct{
char* name;
unsigned long number;
char package;
}Client;
struct node {
Client value;
struct node *next;
};
typedef struct node *LinkedListNode;
Run Code Online (Sandbox Code Playgroud)
当我在主函数中声明列表头时,编译器现在会抱怨混合声明和代码:
int main(){
LinkedListNode head;
head = (LinkedListNode) malloc(sizeof(struct node));
Client aux,aux2;
char command;
command= getchar();
while(command!='x'){
switch(command){
(...)
Run Code Online (Sandbox Code Playgroud)
我可以看到问题是什么,因为我只是在添加“malloc”调用后才收到此错误。我只是不知道如何修复它
如果重要的话,这些结构在 *.h 文件中定义。
我正在经历从Java到C++的过渡,我正在尝试编写一个简单的程序.
有一个超类,Animal具有以下接口:
class Animal
{
public:
Animal(int a, std::string n);
bool operator==(Animal a);
private:
int age;
std::string name;
};
Run Code Online (Sandbox Code Playgroud)
它的子类Dog:
class Dog : public Animal
{
public:
Dog(int a, std::string n, double w);
bool operator==(Dog d);
private:
double weight;
};
Run Code Online (Sandbox Code Playgroud)
我的问题是关于狗的operator==方法,比较2只狗.
动物operator==在下面.
bool Animal::operator==(Animal a) //overriding of operator ==
{
return (age==a.age) && (name==a.name);
}
Run Code Online (Sandbox Code Playgroud)
现在我想用Animal的方法编写Dog的版本.
就像我用Java做的那样:
boolean equals(Dog d){
return (super.equals(d)) && (this.name==d.name);
}
Run Code Online (Sandbox Code Playgroud)
我需要的是c ++相当于(super.equals(d)).如果它是一个具有普通名称的方法,那将很容易(Animal :: equals(d)),但我不知道如何为operator ==执行此操作,它具有不同的语法.