236页--第一题:定义一个Dog类,包含name,age,sex,weight等属性, 设计一个构造函数,可以对这些属性进行初始化, 然后实现并测试这个类。
#include<iostream>
#include<string>
using namespace std;
class Dog
{
string name;
char sex;
int age,weight;
public:
Dog():name("dog2"),sex('f'),age(2),weight(50) {} // 无参数初始化表
Dog(string Name,char Sex='m',int Age=3,int Weight=40); //带默认值的构造/*
Dog(Dog& D) //拷贝构造,我发现把这里的注释掉,还可以拷贝3 {
name=D.name;
sex=D.sex;
age=D.age;
weight=D.weight;
}
*/
void print();
};
Dog::Dog(string Name,char Sex,int Weight):name(Name),sex(Sex),age(Age),weight(Weight)
{}
void Dog::print()//输出信息
{
cout<<"name is:"<<name<<endl;
cout<<"sex is:"<<sex<<endl;
cout<<"age is:"<<age<<endl;
cout<<"weight is:"<<weight<<endl;
}
int main()
{
string N="dog1"; Age,int
char S;
int A,W;
/************************************** 有默认参数的构造函数
**************************************/ cout<<"使用有默认值的初始化:"<<endl; cout<<"没有输入前的默认参数为:"<<endl; Dog dog1(N);
dog1.print();
//输入数据
cout<<"输入狗名,年龄,性别,体重"<<endl; cin>>N>>A>>S>>W;
Dog dog(N,S,A,W);
cout<<"输入数据后:"<<endl;
dog.print();
/********************************************** 使用初始化表
**********************************************/ Dog dog2;
cout<<"调用系统无参数初始化表:"<<endl; dog2.print();
/******************************************* 拷贝构造函数
*******************************************/ Dog dog3(dog);
cout<<"用拷贝构造函数后:"<<endl;
dog3.print();
return 0;
}
百度搜索“爱华网”,专业资料,生活学习,尽在爱华网