我有一个基本的问题,因为我有一段时间没有使用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
定义中。
我为什么要做一个而不是另一个。
其次,在第二个版本中,变量名称不解析。这是为什么?
问:在第二个版本中,变量名称不解析。这是为什么?
答:因为错了。
您一次声明您的类,例如在标头中。
您可以内联(在声明类时在标头本身中)或在单独的.cpp中(如示例1中所做的那样)定义方法实现。这些链接可能有助于进一步解释:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句