我是C ++的新手,我正在玩对象的封装。当我尝试创建一个可以将另一个对象带入构造函数的对象时,我的问题就出现了
当我最初在对象的顶部分配变量时,我不确定应该给变量赋予什么类型的值。我尝试了void
和int
,但似乎都没有效果。这是我的代码:
class NewTest {
int value;
public:
NewTest() {
value = 5;
}
int return_value() {
return value;
}
};
class OuterTest {
int object;
public:
OuterTest(int input) {
object = input;
}
int return_object_value() {
cout << object.return_value() << '\n';
}
};
int main() {
NewTest test_new;
OuterTest outer_new(int test_new);
outer_new.return_object_value();
return 0;
}
答案 0 :(得分:2)
您只需要声明自定义类类型的变量:
#include <iostream>
class ClassA
{
public:
//This function just returns the name of the class
const char* getName() const
{
return "ClassA";
}
};
class ClassB
{
//variable of type ClassA
ClassA myOwnObjA;
public:
//Constructor
ClassB(ClassA objA)//I just receive objects of type ClassA ;)
{
myOwnObjA = objA;
std::cout << "The name of the class of my object is: " << myOwnObjA.getName() << '\n';
}
};
int main()
{
ClassA objA;
ClassB objB(objA);
return 0;
}