一个完整的C++类
来源:互联网 发布:hannah英文名好吗知乎 编辑:程序博客网 时间:2024/05/17 01:53
#include <iostream>
using namespace std;
#pragma once
namespace pan{//命名空间
class Person
{
friend void ff();
private:
string name;
string age;
static int count1;//static类变量
string* gname;//girlfirend name
public:
const string getAge();
void setAge(string age);
string getName();
Person(void);
Person(string age,string name,string gname);
Person(const Person& p);//拷贝构造函数
virtual ~Person(void);
void setgName(string s);
string getgName();
void test(Person p);
Person& operator=(const Person& p);
static int getcount();//静态函数
};
}
#include "StdAfx.h"
#include "Person.h"
using namespace pan;
int Person::count1=0;//static类变量初始化 需要在CPP初始化 需要加类型 int
void Person::setAge(string age){
this->age=age;
}
const string Person::getAge(){
return this->age;
}
string Person::getName()
{
return this->name;
}
int Person::getcount(){
return count1;
}
Person::Person(void):gname(NULL),name(""),age("")
{
Person::count1++;
}
void Person::setgName(string s)
{
gname=new string;
(*gname)=s;
}
string Person::getgName()
{
return *(gname);
}
Person& Person::operator=(const Person& p)//重载运算符=
{
this->age=p.age;
this->name=p.name;
if(this->gname==NULL)
{
this->gname=new string;
}
if(&p!=this){
*(this->gname)=*(p.gname);
}
return *this;
}
void Person::test(Person p)
{
cout<<*(p.gname)<<"www";
}
Person::Person(string age,string name,string gname):age(age),name(name){
this->gname=new string;
*(this->gname)=gname;
}
Person::Person(const Person& p)//拷贝构造函数
{
this->age=p.age;
this->name=p.name;
this->gname=new string;
*(this->gname)=*(p.gname);
}
Person::~Person(void)
{
delete gname;
}
//测试代码
//pan::Person p1,p2;
//p1.setAge("aaaa");
//p1.setgName("liujing");
//p2=p1;//重载=运算符
//cout<<p2.getgName();
//p2.getgName()="eeee";
//cout<<p2.getgName()<<" ";
//cout<<p1.getgName()<<" ";
//Person p3(p2);//拷贝构造
//cout<<p3.getgName()<<endl;
//cout<<Person::getcount();//访问静态成员函数
- 一个完整的C程序
- 一个完整的类
- 一个完整的glslC++类
- 一个完整的分页类
- 一个完整的C++类
- C常见问题之如何构建一个完整的C项目
- C++Primer第二章课后习题,一个较为完整的类
- 一个完整的双向链表程序(C语言版)
- 如何使用epoll,一个完整的C语言示例
- 一个Lex/Yacc完整的示例(可使用C++)
- 如何创建一个完整的C语言程序心得
- 如何使用epoll?一个完整的C用例
- 如何使用epoll?一个完整的C例子
- 一个Lex/Yacc完整的示例(可使用C++)
- 一个完整的数据库的类
- 封装的一个完整的分页类
- 如何定义一个完整的类
- PHP的一个完整SMTP类
- uva11237(数学题)
- 一切成功源于积累——20150804 外汇经典之商品货币 澳美 单日15H连续涨 2.10% 疯狂
- 应该读什么书——读《刘瑜的秘密书架:从经典到经验》有感
- 把BaseAdapter内部类搬运出来单独形成一个类的方法时,出现的错误
- ubuntu下QQ下载和登陆(pidgin)
- 一个完整的C++类
- Java多线程通信-利用传统的线程通信wait(),notify()方法实现“生产者消费者模式”
- Geoserver+Openlayers3加载瓦片地图
- 【C】字符串的输入,求输入字符串中最长的单词
- iOS之UIButton的各种使用
- leetcode Merge Two Sorted Lists
- EXCEL学习笔记——小技巧
- 数据结构 表达式求值
- UIScrolView里自己滚动滑动 ,无限制那种