关于c++中 类对象的赋值操作
2009-10-02 13:40
387 查看
越学c++ ,愈发的觉得java有些肤浅了。拷贝初始化还是比较容易理解的,就不写了,值得注意的是,当类中有指向其他对象的指针成员函数时候,适宜用拷贝初始化。显示的声明拷贝初始化,会防止危险操作,即程序中两个指针指向同一个对象时候,执行析构函数造成释放两次指针变量。
c++ 里面,函数的名称,可以是一个标识符,也可以是一个操作符
一般情况下,当类对象更新类的另外一个对象时候,该成员函数被调用。
以下是类赋值操作成员函数的一般形式:
X& X::operator = (const X& x)
如果程序员没有为类中显示声明这个赋值操作,那么编译器自己为类声明一个赋值操作。
代码:
view plaincopy to clipboardprint?
#include "stdafx.h"
#include <iostream>
//#include <bitset>
using namespace std;
class Person
{
public:
Person(){}
Person(int x){
x = x;
}
Person& operator = (Person& p){
cout<<"aaa";
return *this;
}
void setX(int x ){
x = x;
}
int getX(){
return x;
}
protected:
private:
int x;
};
int main()
{
Person p(2);
Person p1;
p1 = p;
return 0;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lihan6415151528/archive/2009/09/29/4615546.aspx
c++ 里面,函数的名称,可以是一个标识符,也可以是一个操作符
一般情况下,当类对象更新类的另外一个对象时候,该成员函数被调用。
以下是类赋值操作成员函数的一般形式:
X& X::operator = (const X& x)
如果程序员没有为类中显示声明这个赋值操作,那么编译器自己为类声明一个赋值操作。
代码:
view plaincopy to clipboardprint?
#include "stdafx.h"
#include <iostream>
//#include <bitset>
using namespace std;
class Person
{
public:
Person(){}
Person(int x){
x = x;
}
Person& operator = (Person& p){
cout<<"aaa";
return *this;
}
void setX(int x ){
x = x;
}
int getX(){
return x;
}
protected:
private:
int x;
};
int main()
{
Person p(2);
Person p1;
p1 = p;
return 0;
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lihan6415151528/archive/2009/09/29/4615546.aspx
相关文章推荐
- C++中对象的赋值与复制操作详细解析
- c++和c#关于对象赋值的一个重要差别
- C++对象的拷贝与赋值操作
- C++对象的拷贝与赋值操作
- C++对象的拷贝与赋值操作
- C++中关于将对象赋值给整形的过程。
- C++中对象的赋值与复制操作详细解析
- C++对象的拷贝与赋值操作
- 回帖整理: 关于面向对象与数据操作的集合贴
- 关于c++ list容器的操作摸索
- QML与c++交互学习笔记(六) 关于qt c++中创建对象,QML获取此对象数据问题
- C++ 对象模型 ch1 关于对象
- 关于C/C++字符串操作
- 关于C++函数返回局部对象的详细分析
- C++中关于原始数据类型指针变量的new操作以及delete操作
- 关于copy协议中如何简便的为对象赋值
- 关于Objective-C 对象release操作的一个小问题探讨
- 关于 android Intent 传对象和对象数组的一些操作
- C++独孤九剑第六式——洞若观火(深入对象操作)
- c++在堆中创建对象被对其操作