由编译器合成的默认拷贝构造函数为 未定义自己的类做了正确的事情:它将 所有成员从一个对象复制到另一个对象。C++编译器如何合成默认拷贝构造函数
我想做类似的事情。我想写一个方法
template <typename T>
T f(const T& obj) {
// for each member var i of obj, I want to call some method g(obj.i)
}
现在我不知道什么是成员变量的名称。如果这是 复制构造函数,我可以调用赋值运算符而不是g。
很明显,编译器会这样做(但也可以在它推断出 为类的成员的名称后执行此操作)。是否有可能为任何T类做这个 ?
如果它是一个POD那么为什么不使用memcpy? – marcinj 2012-02-22 16:09:08
@luskan:想法是在每个成员上调用一个任意函数'g',而不是复制每个成员。 – 2012-02-22 16:16:20
不,在您定义自己的时候,不可能重新获得默认拷贝构造函数的功能,遗憾的是 – 2012-02-22 16:17:45