C++ 引用/指针/对象名调用
2015-03-24 16:17
417 查看
示例
#include <iostream> using namespace std; class Kid { private: int age; char*name; char*sex; public: Kid(int age,char*name,char*sex); Kid(const Kid &kid); //自定义拷贝函数 ~Kid(); void showKid(); }; Kid::Kid(int age,char*name,char*sex) { Kid::age=age; Kid::name=new char[strlen(name)+1]; strcpy(Kid::name,name); Kid::sex=new char[strlen(sex)+1]; strcpy(Kid::sex,sex); } //Kid::Kid(int age,char *name,char *sex):age(age),name(name),sex(sex) //用成员初始化表对数据成员初始化 //{ // //} Kid::Kid(const Kid &kid) { Kid::age=kid.age*2; int c=strlen(kid.name)+1;//一定要+1用来存放‘/0’字符串结束标志,否则会内存溢出 Kid::name=new char[c]; strcpy(Kid::name,kid.name); Kid::sex=new char[strlen(kid.sex)+1]; strcpy(Kid::sex,kid.sex); } Kid::~Kid() //自定义析构函数 { delete []Kid::name; //delete运算符释放存储空间 delete []Kid::sex; cout<<"dispose object kid"<<Kid::age<<endl; } void Kid::showKid() { cout<<"孩子:"<<endl<<"姓名:"<<name<<endl<<"年龄:"<<age<<endl<<"性别:"<<sex<<endl; } class Car { public: char*no; char*brand; int speed; void showCar(); ~Car();//仿默认析构 }; Car::~Car() { cout<<"dispose object car"<<endl; } void Car::showCar() { cout<<"汽车:"<<endl<<"号码:"<<no<<endl<<"品牌:"<<brand<<endl<<"速度:"<<speed<<"km/h"<<endl; } int main() { Kid kid(10,"rookie_j","男"); kid.showKid(); cout<<"--------------------"<<endl; Kid kid2(kid); //代入法调用拷贝构造函数 kid2.showKid(); cout<<"--------------------"<<endl; Kid kid3=kid2; //赋值法调用拷贝构造函数 kid3.showKid(); cout<<"--------------------"<<endl; Kid *ptr=new Kid(10,"rookie_x","女"); //使用new运算符动态创建对象 ptr->showKid(); cout<<"--------------------"<<endl; delete ptr; //释放对象所占的存储空间 Car car={"8888888","Benz",200},car2;//只有没定义构造函数的类,才能用初始值表初始化公有数据成员,默认构造 car.showCar(); cout<<"--------------------"<<endl; car2=car;//默认拷贝构造函数或car2(car) car2.showCar(); cout<<"--------------------"<<endl; return 0; }
运行结果:
引用指针详解
转载~引用指针分析相关文章推荐
- C++学习笔记---利用对象、引用、指针调用虚函数
- C++学习笔记(13)——利用对象、引用、指针调用虚函数
- C++学习笔记(13)——利用对象、引用、指针调用虚函数
- C++中的对象指针和对象引用
- 条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用 (转自effective c++ second edition)
- 为什么C++中千万不要返回局部对象或变量的引用和指针
- cons对象/指针/引用,不能调用非const成员函数
- C++中的临时对象,对临时对象的引用,和临时对象的指针
- .第04章 CORE C++_指针(II)_动态内存_引用_类_对象_构造函数_析构函数
- 函数调用时对象指针与对象引用的区别与关系
- [C++对象模型][2]指针与引用
- C++析构函数的自动调用(析构函数必须是虚拟的,这样删除父类指针指向的子类对象,才能同时调用两者的析构函数,否则就没有机会调用子类析构函数)
- C++引用、对象、和指针的区别
- [C++对象模型][2]指针与引用
- C/C++中函数的传值调用、指针调用、引用调用问题
- C++的引用计数j控制智能指针——>Java的引用计数管理共享对象
- C++多态必须使用指针或者引用,直接传对象就变成切片
- C++中当对象指针为空时,虚函数和非虚函数的调用情况
- 利用对象、引用、指针调用虚函数
- C++异常对象传递的时候,使用普通对象还是指针还是引用(使用引用)