求助C++! 不知道问题出现在哪了
#include <iostream>
#include <string>
using namespace std;
class father
{
public:
father(){cout<<"构造基类构造函数\n";}
father(string a,int b){name=a;tall=b;cout<<"构造两个参数基类构造函数\n";}
~father(){cout<<"析构基类构造函数\n";}
void print1(){;cout<<"姓名"<<name<<"身高"<<tall<<endl;}
protected:
private:
string name;
int tall;
};
class son:public father
{
public:
son(int a,string b,int c):mak("mak",180){weight=a;cout<<"构造子类构造函数\n";}
~son(){cout<<"析构子类构造函数\n";}
void print2(){print1();cout<<"体重"<<weight<<endl;}
protected:
private:
father mak;
int weight;
};
int main()
{
son mike(80,"mike",180);
mike.print2();
return 0 ;
}
上面的程序,为什么把son,类的mak 改成father就行!否则的话出来的是乱码?
还有就是怎么会调用不带参数的构造函数呢?