#include <iostream>
#include <vector>
using namespace std;
class Class1
{
public:
string m_Ime;
Class1(const string ime);
};
Class1::Class1(string const ime):
m_Ime(ime)
{}
class Class2
{
public:
vector <Class1> m_Class1;
Class2(int mesta);
void RollCall();
void Add(const Class1& aClass1);
};
Class2::Class2(int mesta)
{
m_Class1.reserve(mesta);
}
void Class2::RollCall()
{
for(int x = 0; x < m_Class1.size(); x++){
cout << m_Class1[x].m_Ime << endl;
}
}
void Class2::Add(const Class1& aClass1)
{
m_Class1.push_back(aClass1);
}
int main(){
Class2 skupina (3);
Class2::Add(Class1 ("Prvi"));
Class2::Add(Class1 ("Drugi"));
Class2::Add(Class1 ("Tretji"));
skupina.RollCall();
return 0;
}
没什么比我努力学习聚集的基础知识多。然而试图编译代码时,它给了我下面的错误:
In function 'int main()':
46 29 [Error] cannot call member function 'void Class2::Add(const Class1&)' without object
47 30 [Error] cannot call member function 'void Class2::Add(const Class1&)' without object
48 31 [Error] cannot call member function 'void Class2::Add(const Class1&)' without object
即使我实例类型Class1
的3个对象,然后与他们的调用函数Add
作为参数,同样的错误仍然存在。
这应该补充答案:http://www.cplusplus.com/doc/tutorial/operators/ – Kyborek