C++题,求助各位高手帮个忙!越快越好!小弟在这不胜感激
1,构造一个学生类CStudent,要求如下:具有两个保护的成员:姓名和学号实现带参数的构造函数,在构造函数中输出“带参构造函数被调用”实现拷贝构造函数,在其中输出“拷贝...
1,构造一个学生类CStudent,要求如下:
具有两个保护的成员:姓名和学号
实现带参数的构造函数,在构造函数中输出“带参构造函数被调用”
实现拷贝构造函数,在其中输出“拷贝构造函数被调用”
实现析构函数,在析构中输出“析构函数被调用”
声明一个函数 void PrintInfo(CStudent stu);实现对学生信息的输出
在main中声明CStudent的对象,并利用PrintInfo实现对它的调用。
2。声明基类 CVehicle,要求如下:
具有一个虚函数 void Run(); 输出 其运行的方式 "在天上或地上跑"
具有一个函数void Passenger(); 输出乘客的类型 “人、货物、或者动物”
从CVehicle派生一个CCar类,重载以上两个函数,在其中输出其运行的方式“在地上跑”,以及乘客的类型“人或货物”
从CCar派生一个CBuss类,重载以上两个函数,在其中输出其运行的方式“在城市里跑”,以及乘客的类型“上下班的人”
声明一个函数 void PrintInfo(CVehicle*ptr) 在函数中设用上述两个函数。
在main函数中声明三种类的对象,再声明基类CVehicle的指针,分别指向这三个变量,然后再分别调用函数PrintInfo,再查看输出的结果,体会静态编译与动态编译的差别。
3,声明一个点类CPoint,要求如下:
具有两个保护类型的数据成员:x和y
实现带参数的构造函数、拷贝构造函数
重载复数的“+”、“-”、“=”运算符
在main函数中对两个CPoint对象进行相加,相减,并输出结果。
如果满意可追加分!谢谢 展开
具有两个保护的成员:姓名和学号
实现带参数的构造函数,在构造函数中输出“带参构造函数被调用”
实现拷贝构造函数,在其中输出“拷贝构造函数被调用”
实现析构函数,在析构中输出“析构函数被调用”
声明一个函数 void PrintInfo(CStudent stu);实现对学生信息的输出
在main中声明CStudent的对象,并利用PrintInfo实现对它的调用。
2。声明基类 CVehicle,要求如下:
具有一个虚函数 void Run(); 输出 其运行的方式 "在天上或地上跑"
具有一个函数void Passenger(); 输出乘客的类型 “人、货物、或者动物”
从CVehicle派生一个CCar类,重载以上两个函数,在其中输出其运行的方式“在地上跑”,以及乘客的类型“人或货物”
从CCar派生一个CBuss类,重载以上两个函数,在其中输出其运行的方式“在城市里跑”,以及乘客的类型“上下班的人”
声明一个函数 void PrintInfo(CVehicle*ptr) 在函数中设用上述两个函数。
在main函数中声明三种类的对象,再声明基类CVehicle的指针,分别指向这三个变量,然后再分别调用函数PrintInfo,再查看输出的结果,体会静态编译与动态编译的差别。
3,声明一个点类CPoint,要求如下:
具有两个保护类型的数据成员:x和y
实现带参数的构造函数、拷贝构造函数
重载复数的“+”、“-”、“=”运算符
在main函数中对两个CPoint对象进行相加,相减,并输出结果。
如果满意可追加分!谢谢 展开
展开全部
你稍等,我一个一个做:
第一个:
#include <stdio.h>
#include <string.h>
class CStudent
{
protected:
char m_szName[100];
int m_nNo;
public:
CStudent(char* pszName, int nNo)
{
strcpy(m_szName, pszName);
m_nNo = nNo;
printf("带参构造函数被调用\n");
}
CStudent(CStudent &CS)
{
strcpy(m_szName, CS.m_szName);
m_nNo = CS.m_nNo;
printf("拷贝构造函数被调用\n");
}
~CStudent()
{
printf("析构函数被调用\n");
}
friend void PrintInfo(CStudent stu);
};
void PrintInfo(CStudent stu)
{
printf("Name: %s\t No: %d\n", stu.m_szName, stu.m_nNo);
}
int main()
{
CStudent cs1("Hero", 125);
CStudent cs2 = cs1;
PrintInfo(cs2);
return 0;
}
第二个:
#include <stdio.h>
#include <string.h>
class CVehicle
{
public:
virtual void Run()
{
printf("在天上或地上跑\n");
}
void Passenger()
{
printf("人、货物、或者动物\n");
}
};
class CCar: public CVehicle
{
virtual void Run()
{
printf("在地上跑\n");
}
void Passenger()
{
printf("人或货物\n");
}
};
class CBuss: public CCar
{
virtual void Run()
{
printf("在城市里跑\n");
}
void Passenger()
{
printf("上下班的人\n");
}
};
void PrintInfo(CVehicle*ptr)
{
ptr->Run();
ptr->Passenger();
}
int main()
{
CVehicle a;
CCar b;
CBuss c;
CVehicle *p;
p=&a;
PrintInfo(p);
p=&b;
PrintInfo(p);
p=&c;
PrintInfo(p);
return 0;
}
第三个:
#include <stdio.h>
#include <string.h>
class CPoint
{
protected:
int x;
int y;
public:
CPoint(int xx, int yy)
{
x = xx;
y = yy;
}
CPoint(CPoint &cp)
{
x = cp.x;
y = cp.y;
}
operator+(CPoint &cp)
{
x += cp.x;
y += cp.y;
}
operator-(CPoint &cp)
{
x -= cp.x;
y -= cp.y;
}
operator=(CPoint &cp)
{
x = cp.x;
y = cp.y;
}
void PrintXY()
{
printf("x=%d y=%d\n", x, y);
}
};
int main()
{
CPoint a(1, 2), b(3, 4);
a+b;
a.PrintXY();
a-b;
a.PrintXY();
a=b;
a.PrintXY();
return 0;
}
完成, 有问题, 可以hi我.
第一个:
#include <stdio.h>
#include <string.h>
class CStudent
{
protected:
char m_szName[100];
int m_nNo;
public:
CStudent(char* pszName, int nNo)
{
strcpy(m_szName, pszName);
m_nNo = nNo;
printf("带参构造函数被调用\n");
}
CStudent(CStudent &CS)
{
strcpy(m_szName, CS.m_szName);
m_nNo = CS.m_nNo;
printf("拷贝构造函数被调用\n");
}
~CStudent()
{
printf("析构函数被调用\n");
}
friend void PrintInfo(CStudent stu);
};
void PrintInfo(CStudent stu)
{
printf("Name: %s\t No: %d\n", stu.m_szName, stu.m_nNo);
}
int main()
{
CStudent cs1("Hero", 125);
CStudent cs2 = cs1;
PrintInfo(cs2);
return 0;
}
第二个:
#include <stdio.h>
#include <string.h>
class CVehicle
{
public:
virtual void Run()
{
printf("在天上或地上跑\n");
}
void Passenger()
{
printf("人、货物、或者动物\n");
}
};
class CCar: public CVehicle
{
virtual void Run()
{
printf("在地上跑\n");
}
void Passenger()
{
printf("人或货物\n");
}
};
class CBuss: public CCar
{
virtual void Run()
{
printf("在城市里跑\n");
}
void Passenger()
{
printf("上下班的人\n");
}
};
void PrintInfo(CVehicle*ptr)
{
ptr->Run();
ptr->Passenger();
}
int main()
{
CVehicle a;
CCar b;
CBuss c;
CVehicle *p;
p=&a;
PrintInfo(p);
p=&b;
PrintInfo(p);
p=&c;
PrintInfo(p);
return 0;
}
第三个:
#include <stdio.h>
#include <string.h>
class CPoint
{
protected:
int x;
int y;
public:
CPoint(int xx, int yy)
{
x = xx;
y = yy;
}
CPoint(CPoint &cp)
{
x = cp.x;
y = cp.y;
}
operator+(CPoint &cp)
{
x += cp.x;
y += cp.y;
}
operator-(CPoint &cp)
{
x -= cp.x;
y -= cp.y;
}
operator=(CPoint &cp)
{
x = cp.x;
y = cp.y;
}
void PrintXY()
{
printf("x=%d y=%d\n", x, y);
}
};
int main()
{
CPoint a(1, 2), b(3, 4);
a+b;
a.PrintXY();
a-b;
a.PrintXY();
a=b;
a.PrintXY();
return 0;
}
完成, 有问题, 可以hi我.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询