当类中定义了其他类对象时,它的构造函数很有意思,请看:

#include <iostream>
using namespace std ;

class hardware
{
 private:
 char *CPU ;
 public:
 hardware(char *) ; 
 void print() ; 
} ;

hardware::hardware(char *cpu)
{
 CPU = cpu ;
}

void hardware::print()
{
 cout << "CPU: " << CPU << endl ;
}

class software
{
 private:
 char *OS ;
 public:
 software(char *) ; 
 void print() ; 
} ;

software::software(char *os)
{
 OS = os ;
}

void software::print()
{
 cout << "OS: " << OS << endl ;
}

class computer
{
 private:
 char *producer ;
 hardware HW ;
 software SW ; 
 public:
 computer(char *producer, char *CPU, char *OS) ;
 void print() ;
} ;

//构造函数

computer::computer(char *producer, char *CPU, char *OS):HW(CPU),SW(OS)
{
 this->producer = producer ;
}

void computer::print()
{
 cout << "producer: " << producer << endl ;
 HW.print() ;
 SW.print() ;
}

int main()
{
 computer obj("Apple", "X86", "Mashintosh") ;
 obj.print() ;
 return 0 ;
}

输出:

producer: Apple

CPU: X86

OS: Mashintosh