第六周 程序阅读-深复制、友元、类模板

代码

#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;
}

运行结果:

知识点总结:

1)可以new一个对象

2)先构造的先析构

学习心得:

好好学习 天天向上

时间: 2024-12-21 08:27:44

第六周 程序阅读-深复制、友元、类模板的相关文章

第六周 程序阅读-深复制、友元、类模板(3)

代码 #include <iostream> using namespace std; class B { public: B() { cout<<"default constructor"<<endl; } ~B() { cout<<"destructed"<<endl; } B(int i):data(i) { cout<<"constructed: " <<

第六周 程序阅读-深复制、友元、类模板(4)

代码 #include <iostream> using namespace std; class example { public: example() { cout<<"Default Constructing! "<<endl; } example(int n) { i=n; cout<<"Constructing: "<<i<<endl; } ~example() { cout <

第六周 程序阅读-深复制、友元、类模板(5)

代码 #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<<"Destr

第六周 项目阅读-深复制、友元、类模板(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

第六周 项目一-深复制体验(2)(3)

问题 (2)将注释(a)所在的那一行去掉,会出现什么现象?为什么?为什么a数据成员所占用的存储空间要在aa长度基础上加1?若指针a不是指向字符(即不作为字符串的地址),是否有必要加1? 提示错误,因为没有为a指针初始化地址,a将变为野指针. 字符串结束时需要用'\0'. 没有必要. (3)为类A增加复制构造函数,用下面的main函数测试 int main() { A a("good morning, code monkeys!"); a.output(); A b(a); b.outp

第六周项目一—深复制体验(2)

(3)为类A增加复制构造函数,用下面的main函数测试 int main() { A a("good morning, code monkeys!"); a.output(); A b(a); b.output(); return 0; } 参考解答: /* Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作者:陈丹妮 * 完成日期:2015年 4 月 14 日 * 版 本 号:v1.0 */

第六周 项目一-深复制体验(1)

#include<iostream> #include<cstring> using namespace std; class A { private: char *a; public: A(char *aa) { a = new char[strlen(aa)+1]; //(a)这样处理的意义在于:为aa指针开辟出空间 strcpy(a, aa); //(b)数据成员a与形式参数aa的关系:将a指针所指向地址复制给aa指针 } ~A() { delete []a; //(c)这样

第六周项目一-深复制的体验

#include<iostream> #include<cstring> using namespace std; class A { private: char *a; public: A(char *aa) { a = new char[strlen(aa)+1]; strcpy(a,aa); } A(A &b) { a = new char[strlen(b.a)+1]; strcpy(a,b.a); } ~A() { delete []a; } void outpu

第十六周 程序阅读

#include <iostream > using namespace std; int a[10]= {1,2, 3, 4, 5, 6, 7, 8, 9, 10}; int fun( int i); int main() { int i ,s=0; for( i=0; i<=10; i++) { try { s=s+fun(i); } catch(int) { cout<<"数组下标越界!"<<endl; } } cout<<&