我想知道,我可以,如果我可以,如何在类 B
的复制构造函数中调用模板类 A
的复制构造函数,这两个类都不在同一个文件。
template<typename T> class A: public AP<T>
{
public:
A();
A(const A&);
~A();
};
#include "A"
class B: public BP
{
private:
A<int> Amember;
public:
B();
B(const B&);
~B();
};
谢谢:)
最佳答案
如果我理解这个问题,我认为您在寻找 B 类构造函数中的可选初始值设定项列表。不管你是想调用默认构造函数还是复制构造函数。在构造函数的定义中,您可以放置一个冒号和每个成员变量应如何初始化的列表。即,应该调用哪个构造函数。
#include <iostream>
using namespace std;
class A{
public:
A(){cout<<__PRETTY_FUNCTION__<<endl;}
A(int i){cout<<__PRETTY_FUNCTION__<<" "<<i<<endl; data = i;}
A(const A& a){cout<<__PRETTY_FUNCTION__<<endl; data = a.data;}
private:
int data;
};
class B{
public:
B() : a(){}
B(int i) : a(i){}
B(const B& b) : a(b.a) {}
private:
A a;
};
int main(){
B b1; // default constructor
B b2(5); // integer constructor
B b3(b2); // copy constructor
}
关于c++ - 复制构造函数调用另一个类的复制构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34423742/