10. 对象初始化
来源:互联网 发布:动画视频公司 tvc网络 编辑:程序博客网 时间:2024/06/05 05:35
存储
编译器会在{}开始出现的所有变量的空间.
构造器的调用只在创建对象时发生.
class X{ public: X(); //构造函数};X::X() //构造函数{}void f(int i){ if(i<10) { goto jump1; //如果运行这行,x1的构造就没有做, f结束的时候x1是需要析构的。一个对象没有构造,所以没有办法析构. } X x1; //x1的空间,进了f就有了. 但是构造函数只有运行到这行才会做. jump1: switch(i) { case 1: X x2; break; X x3; break; }}
没有参数的构造函数(default constructor)
#include "stdafx.h"#include <stdio.h>class A{public: int i; A(int a); ~A(); void f();};A::A(int a){ i = a; printf("A::A() -- this = %p\n", this);}A::~A(){ printf("A::~A()\n");}void A::f(){ this->i = 20; printf("A::f()--&i=%p\n", &i); printf("this=%p\n");}int main(){ A a(1); a.i = 10; printf("&a=%p\n", &a); printf("&a.i=%p\n", &(a.i)); A aa(2); a.f(); printf("&aa=%p\n", &aa); aa.f(); A y[2] = { A(1),A(2) };//程序是对的,调用2个构造函数 A yy[2] = { A(1)}; //程序出错,2个数组中存储的是对象,需要调用带参数的构造函数,只写了一个,所以会出错. return 0;}
阅读全文
0 0
- 10. 对象初始化
- 对象初始化
- 对象初始化
- 对象初始化
- 对象初始化
- 对象初始化
- 对象初始化
- 对象初始化
- 对象初始化
- 初始化对象
- 面向对象(对象初始化)
- 类初始化与对象初始化
- 需初始化对象和自动初始化对象
- 对象的初始化块。对象初始化过程
- 对象的初始化
- 深入认识对象初始化
- C++对象的初始化
- Java 对象初始化
- Redis set 顺序问题记录
- JS调用微软TTS DEMO朗读
- Linux常用命令
- Ubuntu下mysql乱码以及无法插入中文字符
- 8.6函数调用与数组和指针的运用
- 10. 对象初始化
- 巧妙避免倒计时跳转页面时出现的问题
- 软件测试面试题
- tomcat 安装以及配置
- NKOJ 4000 (AHOI 2013)差异(后缀自动机/后缀数组+线段树/单调队列)
- 数据库基础知识回顾
- 查看Oracle的表的索引
- CF 903 E Swapping Characters 暴力
- MySQL 基础——「MySQL架构和SQL解析顺序」