我对C ++很陌生,所以如果它是一个非常愚蠢的问题,我很抱歉。 我正在尝试创建一个Object Dog但它不允许我将名称传递给承包商 这是代码
Main.cpp的
#include <iostream>
#include <string>
#include "Dog.h"
int main(){
std::string name = "Spike";
Dog *dog = new Dog('Name', 2);
}
Dog.h
#include <string>
class Dog {
public :
std::string name;
int age;
Dog(std::string name , int age);
};
Dog.cpp
#include "Dog.h";
#include <string>;
Dog::Dog(std::string name, int age)
{
Dog::name = name;
Dog::age = age;
}
答案 0 :(得分:1)
您看到的错误是因为您传递的是单引号Name而不是较低的cased name变量。这会给你错误。不过还有其他人。
您正尝试按dog::name
访问成员变量名称。这是错误的使用dog.name
。
所以使用句号而不是双重结肠。
注意:您也可以使用this->name = name
。
答案 1 :(得分:1)
您错误地使用了::
。它用于访问类/结构或命名空间的静态变量和方法。
您正在尝试访问对象成员,使用.
或->
了解更多信息:When do I use a dot, arrow, or double colon to refer to members of a class in C++?