我有一个基本问题,因为我有一段时间没用过C ++。
我有一个像这样的头文件:
它将保持不变,但cpp文件将更改
#ifndef DOG_H_
#define DOG_H_
class Dog : Animal {
private:
std::string breed;
public:
Dog(std::string name, int age, std::string);
};
#endif /* DOG_H_ */
然后是CPP版本1:
#include "Dog.h"
Dog::Dog(std::string name, int age, std::string breedIn){
Animal(name, age);
breed = breedIn;
}
或CPP第2版:
#include "Dog.h"
class Dog{
Dog::Dog(std::string name, int age, std::string breedIn){
Animal(name, age);
breed = breedIn; // the var name breed does not resolve
}
};
版本1和版本2之间的区别在于第二个版本包含在class
定义中。
我为什么要做一个而不是另一个。
其次,在第二个版本中,变量名称品种无法解析。那是为什么?
答案 0 :(得分:0)
问:在第二个版本中,变量名称品种无法解析。那是为什么?
答:因为它错了。
您 在标题中。
您可以定义您的方法实现,无论是内联(在标头本身,当您声明类时),还是在单独的.cpp中(如您在示例1中所做的那样)。 这些链接可能有助于进一步解释: