搜索
您的当前位置:首页正文

实验一、类与对象

来源:二三娱乐


实验一 类与对象

一、实验目的

1.掌握类的定义和使用。 2.掌握类的对象的声明。

3.复习具有不同访问属性的成员的访问方式。 4.观察构造函数和析构函数的执行过程。

5.使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析

构函数、成员函数的执行顺序。

二、实验课时

4学时 三、实验任务

1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run(提示信息“CPU开始运行”)、stop(提示信息“CPU停止运行”)。其中,为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。在main函数中定义该类的一个对象,并调用其公有成员函数,观察构造函数和析构函数的调用顺序。试试能不能在主函数中打印该对象的属性值,并分析原因。

@

2.在上述CPU类中添加成员函数,分别用于设置及获取各属性的值,并在

main函数中调用这些函数。观察当这些函数被设置成private或public时会有什么不同。

3.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象。CPU类的定义为实验任务1,RAM、CDROM类可以自由设置一些属性,并提供类似的run、stop这两个成员函数。在main函数中测试这个类,分析成员函数的运行顺序。

4.定义一个Point类,属性为坐标X、Y的值,包含有如下成员函数:构造函数、析构函数、设置与获取X和Y的值的函数,并测试程序的输出结果。

#include #include <>

using namespace std; /*

1.定义一个CPU类,包含等级(rank)、频率(frequency)、电压

(voltage)等属性,有两个公有成员函数run(提示信息“CPU开始运行”)、stop(提示信息“CPU停止运行”)。其中,为枚举类型CPU_Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,

voltage为浮点型的电压值。在main函数中定义该类的一个对象,并调用其公有成员函数,观察构造函数和析构函数的调用顺序。试试能不能在主函数中打印该对象的属性值,并分析原因。 {

2.在上述CPU类中添加成员函数,分别用于设置及获取各属性的值,并在main函数中调用这些函数。观察当这些函数被设置成private或public时会有什么不同。

3.定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象。CPU类的定义为实验任务1,RAM、CDROM类可以自由设置一些属性,并提供类似的run、stop这两个成员函数。在main函数中测试这个类,分析成员函数的运行顺序。

4.定义一个Point类,属性为坐标X、Y的值,包含有如下成员函数:构造函数、析构函数、设置与获取X和Y的值的函数,并测试程序的输出结果。 */

enum CPU_Rank { P1 = 1, P2, P3, P4, P5, P6, P7 };

class CPU {

public: CPU(); ~CPU(); 、

void set_CPU(CPU_Rank r, int freq, float v); void get_CPU(); void run(); void stop(); private:

CPU_Rank rank; int frequency; float voltage; };

void CPU::run() |

{

cout << \"CPU run\" << endl; }

void CPU::stop() {

cout << \"CPU stop\" << endl; }

void CPU::set_CPU(CPU_Rank r, int f, float v) { )

rank = r;

frequency = f; voltage = v; }

void CPU::get_CPU() {

cout << \"CPU CPU_Rank = \" << rank << endl;

cout << \"CPU frequency = \" << frequency << \" MHz\" <

CPU::CPU() {

cout << \"CPU构造函数\" << endl; }

CPU::~CPU() {

cout << \"CPU析构函数\" << endl; } —

class RAM {

public: RAM(); ~RAM(); void run();

void stop();

void set_size(unsigned int s); void get_size(); private:

unsigned int size; ]

};

void RAM::run() {

cout << \"RAM run\" << endl; }

void RAM::stop() {

cout << \"RAM stop\" << endl; }

<

void RAM::set_size(unsigned int s) {

size = s; }

void RAM::get_size() {

cout << \"RAM size = \" << size << endl; } &

RAM::RAM() {

cout << \"RAM 构造函数\" << endl; }

RAM::~RAM() {

cout << \"RAM 析构函数\" << endl; }

class CDROM [ {

public:

CDROM(); ~CDROM(); void run(); void stop();

void set_size(unsigned int s); void get_size(); private:

unsigned int size; };

void CDROM::run() {

cout << \"CDROM run\" << endl; }

void CDROM::stop() {

cout << \"CDROM stop\" << endl; } …

void CDROM::set_size(unsigned int s) {

size = s; }

void CDROM::get_size() {

cout << \"CDROM size = \" << endl; }

CDROM::CDROM() ,

{

cout << \"CDROM 构造函数\" << endl; }

CDROM::~CDROM() {

cout << \"CDROM 析构函数\" << endl; }

class Computer {

public:

Computer(); ~Computer(); void set_PC(); void get_PC(); void run(); void stop(); private: CPU cpu; 》

RAM ram;

CDROM cdrom; };

void Computer::run() {

cout << \"PC run\" << endl; (); (); (); }

-

void Computer::stop() {

(); (); ();

cout << \"PC stop\" << endl; }

void Computer::set_PC() { |

(P1, 2, ; (1024); (2048); }

void Computer::get_PC()

{

(); (); (); }

Computer::Computer() {

cout << \"Computer 构造函数\" << endl; }

Computer::~Computer() {

cout << \"Computer 析构函数\" << endl; }

~

class Point {

public:

Point(); ~Point();

void setPoint(int x, int y); void getPoint(); private:

int X, Y; };

void Point::setPoint(int x, int y) {

X = x; Y = y; }

void Point::getPoint() {

cout << \"X = \" << X << endl; cout << \"Y = \" << Y << endl; ` }

Point::Point() {

cout << \"Point 构造函数\" << endl; }

Point::~Point() {

cout << \"Point 析构函数\" << endl; }

int main() {

Computer PC; (); (); (); ();

Point p; (12, 45); ();

system(\"pause\"); return 0; }

因篇幅问题不能全部显示,请点此查看更多更全内容

Top