注册 登录
编程论坛 C++教室

求助C++类定义引用的问题 高手请进

shonjan 发布于 2010-03-05 17:44, 496 次点击
先定义两个类,如下所示:
class B
{
    public:
        B(int i,int j);
    ...
    private:
        int a,b;
}
class A
{
    public:
        A(int i,int j);
    ...
    private:
        B c;
}
之后引用的时候,下面这个句子是什么意思?请高手指教

A::A(int i,int j):c(i,j){ }

主要是中间那个":"冒号是什么意思??
3 回复
#2
cnfarer2010-03-05 22:21
A::A(int i,int j):c(i,j){ }是A的构造函数,  :c(i,j) 表示同时使用B的构造函数

程序代码:
#include <stdio.h>

class B
{
    public:
        B(int i,int j);
    private:
        int a,b;
};
class A
{
    public:
        A(int i,int j);

    private:
        B c;
};
B::B(int i, int j){a=i;b=j;printf("%d,%d\n",a,b);}
A::A(int i,int j):c(i,j){;}

int main()
{
    A a(5,2);
    return 0;
}
#3
紫ing~2010-03-05 23:45
类的构造函数初始化列表,对类中对象初始化
#4
shonjan2010-03-08 22:40
以下是引用cnfarer在2010-3-5 22:21:33的发言:

A::A(int i,int j):c(i,j){ }是A的构造函数,  :c(i,j) 表示同时使用B的构造函数

#include <stdio.h>
 
class B
{
    public:
        B(int i,int j);
    private:
        int a,b;
};
class A  ...
那若是在B类中再如A类一样添一个对象引用,是不是要在A::A(int i,int j):c(i,j){ }后再加一个:d(i,j)呀?
即是这样:A::A(int i,int j):c(i,j):d(i,j){ }
1