操作符的重载以及数组/vector对象的初始化
2012-02-28 21:40
363 查看
>> cat operator.C #include <iostream> #include <vector> using namespace std; class A { public: A(int i = 0):a(i) { cout << " I am in A() " << endl; } A(const A &x) { cout << " I am in A(const A&) " << endl; a=x.a; } A& operator=(int i) { cout << " I am in operator() " << endl; a=i; return *this; } operator int() { cout << " I am in operator int() " << endl; return a; } private: int a; }; int main() { A a =3; a=4; int x = a; cout << x << endl; cout << "test array of A " << endl; A a1[10]; cout << "test vector of A " << endl; vector<A> v(10); }
运行结果:
>> ./a.out I am in A() I am in operator() I am in operator int() 4 test array of A I am in A() I am in A() I am in A() I am in A() I am in A() I am in A() I am in A() I am in A() I am in A() I am in A() test vector of A I am in A() I am in A(const A&) I am in A(const A&) I am in A(const A&) I am in A(const A&) I am in A(const A&) I am in A(const A&) I am in A(const A&) I am in A(const A&) I am in A(const A&) I am in A(const A&)
对象数组:调用default constructor来初始化每个对象
vector:先调用default constructor生成一个临时对象,然后调用拷贝构造函数来初始化每个元素。
相关文章推荐
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的配套类型,C风格字符串问题和处理区别
- 用int数组初始化vector对象
- C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误
- 『C++ Primer学习笔记』Chapter 3——string对象、vector对象以及数组的不同处理方法
- 重载等号操作符(分析初始化对象和赋值对象的浅拷贝)(进阶3)
- c++用整型数组初始化一个vector对象
- 使用数组来初始化 vector 对象
- vector对象的定义和初始化以及vector迭代器iterator
- 整型数组与vector对象之间的相互初始化
- 用vector容器代替数组 ——使用数组初始化vector对象
- C++中重载数组下标访问操作符[ ] 和 赋值操作符 = ,* 和 -> 操作符和取反 !以及转化操作符bool和void*
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- JAVA对象数组的初始化方法
- 数组常量 常量数组 结构体数组初始化 对象数组
- 使用jQuery对js对象和数组的遍历以及序列化
- java数组的初始化;数组对象和数组变量
- 仍然是数组和指针的初始化,以及string类型的赋初始值
- Java入门基础之数组以及类与对象 个人笔记
- Java URL对象初始化以及通过URL或者URLConnection读取内容
- 数组、对象、类数组对象的不同以及类数组转数组方法总结