![]() |
#2
mfkblue2009-07-31 19:32
|
问题 1
有以下定义
class A
{
public:
//.......
private:
A inside_object;
//.......
};
这样的话 A对象的私有成员里会有一个A类型的对象,名叫inside_object
但是这个名为inside_object的私有成员自己也会有一个A的对象名为inside_object的私有成员 ~~~
然后循环往复 岂不是要耗光内存 ~~?~~~~
~~~额额额额 ~想不通吖~~~~谁明白给我讲讲呗 ~~
问题 2
class A
{
// ...
};
class B
{
private:
A myAobj;
public:
//......
};
就是如果类A没有写A()这样的不接受参数的构造函数,那么类B内 myAobj这样的声明没问题吧 ?对myAobj的初始化是不是只能放在B的构造函数里呢 ?~
那么 类外可以像A myAobj;这样声明对象么~?
问题 3……
class A
{
private:
int a;
//....
public:
//....
void fun(int num=a);
};
实际情况是函数fun需要参数num来做运算,这时可以用对象内私有成员a,也可以从外部传递参数。但是这样做编译不通过,说只能把a声明成静态成员。但是我不想这么做,应该怎么解决呢~?
还有 如果a被声明成一个函数指针,也就是说fun函数需要一个函数指针做参数(可以是一个算法公式之类的),这种情况下要怎么办呢?~
以上问题 求解决方法和简单实例代码~~~
[[it] 本帖最后由 dracovash 于 2009-7-31 18:43 编辑 [/it]]