当类的构造函数有参时,在另外一个类里面定义这个类的对象该如何做
当类的构造函数有参时,在另外一个类里面定义这个类的对象该怎么做?
下面这个程序 编译会错
#include <iostream.h>
class haha
{
public:
int num;
haha(int i);
void output();
};
haha::haha(int i)
{
num=i;
}
void haha::output()
{
cout < <num < <endl;
}
class henhen
{
public:
henhen();
haha o(int i);
};
henhen::henhen()
{
haha o=new haha(2);
}
int main()
{
henhen hehe;
hehe.o.output();
return 1;
}
就是hehe.o.output();这句错,意思就是o其实不是一个结构体或者类。
但是我把鼠标移到上面明明又显示是一个对象。
请指教。
回答给分。
------解决方案--------------------
class henhen
{
public:
henhen();
haha o(int i);
};
haha o(int i);// o是成员函数了
haha o;
------解决方案--------------------
class henhen
{
public:
henhen();
haha o;
};
henhen::henhen()
{
o=haha(2);
}
------解决方案--------------------
haha o=new haha(2);
===>
这个是Java语法, 不是C++语法
C++;
haha* o = new haha(2);
or
haha o(2);
or
o = haha(2);
:))))
------解决方案--------------------
LZ需要用initializer. 这样就对了:
class henhen
{
public:
henhen();
haha o;
};
henhen::henhen() : haha(2)
{
}
------解决方案--------------------
应该用初始化列表进行初始化,不能和你那样直接掉用带参构造函数...常量也是这样子的
下面这个程序 编译会错
#include <iostream.h>
class haha
{
public:
int num;
haha(int i);
void output();
};
haha::haha(int i)
{
num=i;
}
void haha::output()
{
cout < <num < <endl;
}
class henhen
{
public:
henhen();
haha o(int i);
};
henhen::henhen()
{
haha o=new haha(2);
}
int main()
{
henhen hehe;
hehe.o.output();
return 1;
}
就是hehe.o.output();这句错,意思就是o其实不是一个结构体或者类。
但是我把鼠标移到上面明明又显示是一个对象。
请指教。
回答给分。
------解决方案--------------------
class henhen
{
public:
henhen();
haha o(int i);
};
haha o(int i);// o是成员函数了
haha o;
------解决方案--------------------
class henhen
{
public:
henhen();
haha o;
};
henhen::henhen()
{
o=haha(2);
}
------解决方案--------------------
haha o=new haha(2);
===>
这个是Java语法, 不是C++语法
C++;
haha* o = new haha(2);
or
haha o(2);
or
o = haha(2);
:))))
------解决方案--------------------
LZ需要用initializer. 这样就对了:
class henhen
{
public:
henhen();
haha o;
};
henhen::henhen() : haha(2)
{
}
------解决方案--------------------
应该用初始化列表进行初始化,不能和你那样直接掉用带参构造函数...常量也是这样子的