77范文网 - 专业文章范例文档资料分享平台

C++面向对象程序设计实验指导书(4)

来源:网络收集 时间:2019-03-23 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C++面向对象程序设计实验指导书 实验四

实验四 类和对象—对象传递与静态成员

4.1 实验目的

1.理解静态成员(静态数据成员、静态成员函数)的作用与使用; 2.理解友元(友元函数、友元类)的作用于使用; 3.理解常类型的使用。

4.2 实验内容 4.2.1程序阅读

1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。

#include #include

class CStudent {

public:

CStudent(char *n, int a); ~CStudent();

static void SetAge(int age);

private:

char *name; int age;

static int nTotalObj; };

int CStudent::nTotalObj = 0;

CStudent::CStudent(char *n, int a) :age(a) {

int nLen = strlen(n);

name = new char[nLen+1]; strcpy(name,n); name[nLen] = '\\0';

12

C++面向对象程序设计实验指导书 实验四

nTotalObj++; }

CStudent::~CStudent() {

delete[] name;

nTotalObj--; }

void CStudent::SetAge(int age) {

this->age = age; }

void main() {

CStudent stu1(\张三\,25); CStudent str2(\李四\,26);

cout<<\<

问题一:以上程序编译能通过吗,为什么?

问题二:成员变量nTotalObj在程序中起什么作用,它是如何实现的?

问题三:如果规定该程序的主函数和类CStudent中的成员变量的属性不允许改变,应该如何改正该程序?

2.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。

#include #include

class CStudent {

public:

CStudent(char *n, int a); ~CStudent();

private:

char *name; int age; };

CStudent::CStudent(char *n, int a) :age(a) {

int nLen = strlen(n);

name = new char[nLen+1];

13

C++面向对象程序设计实验指导书 实验四

strcpy(name,n); name[nLen] = '\\0'; }

CStudent::~CStudent() {

delete[] name; }

class CTeacher {

public:

CTeacher(char *tn, int ta); ~CTeacher();

void SetStuAge(int a); private:

char *name; int age;

CStudent stu; };

CTeacher::CTeacher(char *tn, int ta) :age(ta) {

int nLen = strlen(tn);

name = new char[nLen+1]; strcpy(name,tn); name[nLen] = '\\0'; }

CTeacher::~CTeacher() {

delete[] name; }

void CTeacher::SetStuAge(int a) {

stu.age = a; }

void main() {

CStudent stu(\张三\,25); CTeacher tea(\李四\,26);

14

C++面向对象程序设计实验指导书 实验四

}

问题一:以上程序有两大错误,试指出来,并改正之?

3.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。

#include \ class Date {

private:

const int year; const int month; const int day; public:

Date(int y,int m,int d); void showdate(); };

Date::Date(int y,int m,int d) {

year = y; month = m; day = d; }

void Date::showdate() {

cout<

void main() {

const Date obj(2007,10,30); obj.showdate(); }

问题一:以上程序有两大错误,试指出来,并改正之(要求主函数和类Date的数据成员属性不可以改动)?

4.2.2 程序设计

1.某商店经销一种货物。货物成箱购进,成箱卖出,购进和卖出时以重量为单位,各箱的重量不一样,因此,商店需要记录下目录库存的总重量。试用C++模拟商店货物购进和卖出的情况。

15

C++面向对象程序设计实验指导书 实验五

实验五 派生与继承—单重派生

5.1 实验目的

1.理解继承的含义以及声明;

2.理解共有派生、私有派生和保护派生的含义以及使用; 3.理解单派生类中构造函数和析构函数的调用顺序。

5.2 实验内容 5.2.1程序阅读

1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。

#include \

class CBase {

public:

CBase(int a) :a(a) { } protected:

void print() { cout<<\<

class CDerive : public CBase {

public:

void print() { CBase::print(); cout<<\<

16

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++面向对象程序设计实验指导书(4)在线全文阅读。

C++面向对象程序设计实验指导书(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/541820.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: