64,654
社区成员
发帖
与我相关
我的任务
分享
struct base_t
{
void* p;
};
template<typename T>struct child_t: public base_t
{
child_t(T* t): base_t::p(t){} // ERROR
child_t(T* t){ p = t; } // OK
};
int main(int argc, char* argv[])
{
int a = 0;
child_t<int> c(&a);
return 0;
}
template<typename T>struct child_t
{
private:
T* p;
public:
child_t(T* t){ p = t; }
};
struct base_t
{
void* p;
};
template<typename T>struct child_t: public base_t
{
//child_t(T* t): base_t::p(t){} // ERROR
child_t(T* t){ p = t; } // OK, p是指针,可以赋值,struct默认public,所以child_t也包含p
//不要再像上一句去使用基类的p。
};
template<typename T>struct child_t
{
private:
T* t;
public:
child_t(T* t){ p = t; }
};