C++学习(1)

<!-- @page { size: 21cm 29.7cm; margin: 2cm } PRE.western { font-family: "Courier New", monospace } PRE.cjk { font-family: "新宋体", monospace } PRE.ctl { font-family: "新宋体", monospace } P { margin-bottom: 0.21cm } -->

关于构造函数
   创建一个类类型的对象时,编译器会自动使用一个构造函数来初始化该对象。
   构造函数的尽量初始化数据而不是对数据赋值。
 Person(const string &na,const string &add):name(na),address(add){}

	//
初始化
Person(const string &na,const string &add){

name=na;

address=add;

}//
初始化+
赋值 多了1
布

重载操作符
 = +=
要返回自身的一个引用 用于连锁赋值
a=c=b=10;


Person& operator=(Person& p)

	{

		name+=p.getPersonName();

		address+=p.getPersonAddress();

		return *this;

	};1C++Person.h

#ifndef __PERSON__

#define __PERSON__

#include <string>

#include <iostream>

using namespace::std;

class Person{

public:

	Person(const string &na,const string &add);

	~Person();

	string getPersonName() const;

	string getPersonAddress() const;

	Person& operator=(Person& p);

	

private:

	string name;

	string address;





};

inline string Person::getPersonName() const

{

	

	return name;

}

inline string Person::getPersonAddress() const

{

	return address;

}

#endif


Person.cpp

#include "Person.h"


Person::Person(const string &na,const string &add):name(na),address(add){


}

Person::~Person()

{

	cout<<"free"<<endl;

}

Person& Person::operator =(Person& p){

	name+=p.getPersonName();

	address+=p.getPersonAddress();

	return *this;

};


类的定义与声明:
类声明给出了1
个不完全的类型 只能定义指向该类型的指针或引用。
如果要创建类的对象以及时候指针或引用访问类的成员,必须先定义!


class y;


class x{

public :

	y *p;

     void f(y t);


};

class y{

public :

	x p;

};


错误的
class x;

class y{

public :

	x p;

};


class x{

public :

	y *p;


};



const 
对象只能使用const
成员
要不确定的话 可以重载const
成员函数
const Screen& display(ostream &os) const;//const
对象只能调用这个
	Screen& display(ostream &os) ;



explicit 
防止构造函数隐式转换


explicit Person(const string &na,const string &add="");


	

	~Person();

	bool isSame(const Person &p){

		return false;

	}


string nullbuul="te";

		

cout<<p2.isSame(nullbuul)<<endl; //error

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值