【实验题目名称】: 类和对象
【实验目的】:
掌握类的定义和使用以及类对象的声明和使用方法,理解具有不同访问属性的成员的访问方式。
掌握构造函数和析构函数的作用和编写方法。
了解并掌握静态成员、常成员的使用。
【实验内容】
下列程序在编译时出错,请修改程序使之能正确运行。
#include<iostream>
using namespace std;
class MyClass
{
public:
MyClass() { x=0;y=0; }
MyClass(int a, int b):x(a),y(b) {}
void Print() {cout <<"x="<<x<<"\n"<<"y="<<y<<endl; }
private:
int x, y;
};
/*MyClass::MyClass(int a = 0, int b =0)
{
x = a; //将此函改成如上所示的函数即MyClass(int a, int b):x(a),y(b) {}
y = b;
} */
/*void MyClass::Print()
{
cout << "x = " << x << endl;
cout << "y = " << y << endl; //将此函数改成void Print()
{cout //<<"x="<<x<<"\n"<<"y="<<y<<endl; }
} */
int main()
{
MyClass obj1,obj2(5,8);
// =1;
// =3; //去掉
();
();
return 0;
}
:n=1,x=12
n=2,x=34
n=2,x=34
n=1
这一结果不符合要求,正确的输出结果应该为:n=1,x=12
n=2,x=34
n=3,x=34
n=2
请仔细阅读程序分析原因,修改程序后上机运行,使输出结果符合要求。#include <iostream>
using namespace std;
class A
{
public:
A(int x=0) { X=x; n++; }
~A() { --n ; } //将此处的n++改成--n
static int GetNum(){ return n; }
void print(){ cout<<"n="<<n<<", X="<<X<<endl;}
private:
static int n;
int X;
};
int A::n = 0; //静态数据成员的初始化
int main()
{
A *p=new A(12);
p->print();
A a(34);
();
A b(34);
();
delete p;
cout << "n=" << A::GetNum() << endl;
return 0;
}
,结果为:书名:中国足球内幕作者:李承鹏价格:29元书名:傻儿皇帝:阿斗回
C 类和对象 来自淘豆网m.daumloan.com转载请标明出处.