2015级C++第9周程序阅读 类和指针

阅读程序,写出程序的运行结果并理解其运行机制。
(1)

#include <iostream>
using namespace std;
class A
{
public:
    A(){cout<<"A";}
    ~A(){cout<<"~A";}
};

class B
{
    A *p;
public:
    B()
    {
        cout<<"B";
        p=new A();
    }
    ~B()
    {
        cout<<"~B";
        delete p;
    }
};
int main()
{
    B obj;
    return 0;
}

(2)

#include <iostream>
using namespace std;
class MyClass
{
public:
    MyClass(int x=0):i(x){cout<<"C"<<i;}
    ~MyClass(){cout<<"D"<<i;}
    void SetValue(int val){i=val;}
    int GetVal(){return i;}
private:
    int i;
};
int main()
{
    MyClass *p[3];
    int i;
    for (i=0; i<3; i++)
    {
        p[i]=new MyClass(i);
        p[i]->SetValue(p[i]->GetVal()*2);
    }
    for (i=0; i<3; i++)
        delete p[i];
    cout<<endl;
    return 0;
}

(3)

#include <iostream>
using namespace std;
class AA
{
public:
    AA(int i,int j)
    {
        A=i;
        B=j;
        cout<<"Constructor\n";
    }
    AA(AA &obj)
    {
        A=obj.A+1;
        B=obj.B+2;
        cout<<"Copy_Constructor\n";
    }
    ~AA() {
        cout<<"Destructor\n";
    }
    void print()
    {
        cout<<"A="<<A<<",B="<<B<<endl;
    }
private:
    int A,B;
};
int main()
{
    AA a1(2,3);
    AA a2(a1);
    a2.print();
    AA *pa=new AA(5,6);
    pa->print();
    delete pa;
    return 0;
}
时间: 2024-10-26 00:14:49

2015级C++第9周程序阅读 类和指针的相关文章

2015级C++第16周程序阅读 文件操作

1.请写出下面程序的输出结果 (1) #include <iostream> #include <fstream> using namespace std; int main() { fstream outfile,infile; outfile.open("data.dat",ios::out); outfile<<"1111111111"<<endl; outfile<<"aaaaaaaaaa

2015级C++第14周程序阅读 STL中的简单容器和迭代器

阅读并运行程序,解释程序执行得到的结果 (1) #include<iostream> #include<vector> #include<iterator> using namespace std; int main() { vector<int> ivec; int i; for(i = 0; i < 5; i++ ) ivec.push_back(i); for(i = 0; i < 5; i++) cout<<ivec[i]&l

2013级C++第12周程序阅读项目——理解函数

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 第一部分 重重重要的技能:掌握单步执行,跟踪观察执行中变量的变化 阅读http://blog.csdn.net/sxhelijian/article/details/15026159中<CodeBlocks调试功能快捷教程>,通过运行示例,掌握CodeBlocks中调试功能. 今后在调试程序时,尽可能利用好调试功能,这是职业的要求. 第二部分 阅读代码,理解函数的用法

2013级C++第14周程序阅读

课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759 1.阅读下面筛法求素数的程序,理解其算法.代码请从CSDN博客的课程主页上下载.如果对运行结果和其背后的原理仍不理解,请通过单步执行的手段跟踪理解,学会观察数组在运行过程中的变化. #include <iostream> #include <iomanip> using namespace std; int main() { const int M=200;

2015级C++第8周项目 数组和指针

[项目1 - 数组作数据成员]参考解答 下面是设计好的一个工资类(Salary): class Salary { public: void set_salarys( );//输入职工工资(输入-1标志着工资输入结束),工资保存到salary数组中,实际人数保存到number中: void add_salarys(int x); //给每个人涨x元工资 void sort_salarys(); //对工资由大到小排序 void show_salarys( ); //显示工资信息 private:

2015级C++第13周实践项目 多态性和实现

[项目1-分数类中的运算符重载] 参考解答 (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简).比较(6种关系)的运算. class CFraction { private: int nume; // 分子 int deno; // 分母 public: //构造函数及运算符重载的函数声明 }; //重载函数的实现及用于测试的main()函数 (2)在(1)的基础上,实现分数类中的对象和整型数的四则运算.分数类中的对象可以和整型数进行四则运算,且运算符合交换律.例如

2015级C++第10、11周程序阅读 继承和派生

阅读程序,请写出这些程序的运行结果 (1)阅读程序,写出执行结果 #include <iostream> using namespace std; class Data { public: Data(int i):x(i){cout<<"A";} ~Data(){ cout<<"B";} private: int x; }; class Base { public: Base(int i):b1(i){cout<<&q

2015级C++第10、11周程序阅读(补充) 继承和派生

(1) #include<iostream> using namespace std; class G { public: static int m; G( ){ //构造函数 m++; cout<<"G begins\n"; } ~G( ) { cout<<"G ends\n"; m--; } }; int G::m=0; class D:public G { public: D( ){ //构造函数 m++; cout<

2015级C++第7周项目 友元、共享数据保护、多文件结构

[项目1-成员函数.友元函数和一般函数有区别]参考解答 (1)阅读下面的程序,体会注释中的说明(要运行程序,请找到课程主页并复制代码) //例:使用成员函数.友元函数和一般函数的区别 #include <iostream> using namespace std; class Time { public: Time(int h,int m,int s):hour(h),minute(m),sec(s) {} void display1(); //display1是成员函数 friend voi