载入中。。。 'S bLog
 
载入中。。。
 
载入中。。。
载入中。。。
载入中。。。
载入中。。。
载入中。。。
 
填写您的邮件地址,订阅我们的精彩内容:


 
VC++学习笔记17-构造析构函数与重载
[ 2010/8/8 14:47:00 | By: 梦翔儿 ]
 

//定义复制构造函数
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CBook
{
public:
 char m_BookName[128]; //定义数据成员
 const unsigned int m_Price;
 int m_ChapterNum;
 CBook() //默认构造函数
  :m_Price(32),m_ChapterNum(15) //初始化数据成员
 {
  strcpy(m_BookName,"大学英语");
  cout<<"构造函数被调用:"<<endl;
 }
 CBook(const CBook &book) //定义复制构造函数
  :m_Price(book.m_Price)
 {
  m_ChapterNum=book.m_ChapterNum;  //复制m_ChapterNum成员函数
  strcpy(m_BookName,book.m_BookName);
  cout<<"复制构造函数被调用"<<endl;
 }
};
void OutputBookInfo(CBook book)
{
 cout<<book.m_BookName<<endl;
}
int main()
{
 CBook book;  //定义一个CBook类对象book
 OutputBookInfo(book);
 return 0;
}

===========
//定义复制构造函数
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CBook
{
public:
 char m_BookName[128]; //定义数据成员
 const unsigned int m_Price;
 int m_ChapterNum;
 CBook() //默认构造函数
  :m_Price(32),m_ChapterNum(15) //初始化数据成员
 {
  strcpy(m_BookName,"大学英语");
  cout<<"构造函数被调用:"<<endl;
 }
 CBook(const CBook &book) //定义复制构造函数
  :m_Price(book.m_Price)
 {
  m_ChapterNum=book.m_ChapterNum;  //复制m_ChapterNum成员函数
  strcpy(m_BookName,book.m_BookName);
  cout<<"复制构造函数被调用"<<endl;
 }
};
void OutputBookInfo(CBook &book) //以引用类型为参数将不会执行复制构造函数
{
 cout<<book.m_BookName<<endl;
}
int main()
{
 CBook book;  //定义一个CBook类对象book
 OutputBookInfo(book);
 return 0;
}
======
//静态类成员
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CBook
{
public:
 static unsigned int m_Price; //定义一个静态数据成员
};

unsigned int CBook::m_Price = 10; //通常在类体外进行初始化

int main()
{
 CBook book;
 cout<<CBook::m_Price<<endl; //用类名来访问静态数据成员
 cout<<book.m_Price<<endl;   //用对象访问
 return 0;
}

==========
//静态类成员
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CBook
{
public:
 static unsigned int m_Price; //定义一个静态数据成员
};

unsigned int CBook::m_Price = 10; //通常在类体外进行初始化

int main()
{
 CBook book,vbook;
 cout<<CBook::m_Price<<endl; //用类名来访问静态数据成员
 CBook::m_Price=20;
 cout<<book.m_Price<<endl;   //用对象访问
 cout<<vbook.m_Price<<endl;  //静态成员是全局的,一个改,所有对象全改。
 return 0;
}
=========
//每个对象都有自已的一份拷贝,其实是隐藏了this指针
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CBook
{
public:
 int m_pages;
 void OutputPages() //相当于 OutputPages(CBook* this)
 {
  cout<<m_pages<<endl; //相当于 this->m_pages
 }
};

int main()
{
 CBook vbBook,vcBook;
 vbBook.m_pages = 512;
 vcBook.m_pages = 570;
 vbBook.OutputPages();
 vcBook.OutputPages();
 return 0;
}
========
//运算符重载
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CBook
{
public:
 int m_pages;
 void OutputPages()
 {
  cout<<m_pages<<endl;
 }
 CBook operator+(const CBook &book) //定义+运算符重载函数
 {
  CBook bk;
  bk.m_pages = m_pages + book.m_pages; //实现数据相加
  return bk;
 }
};

int main()
{
 CBook vbBook,vcBook,vfBook;
 vfBook = vbBook + vcBook;
 cout
 return 0;
}
=========

//运算符重载
#i nclude <iostream>
#i nclude <iomanip>
#i nclude <string>
using namespace std;

class CBook
{
public:
 int m_pages;
 void OutputPages()
 {
  cout<<m_pages<<endl;
 }
 CBook()
 {
 }
 CBook(int page)
 {
  m_pages=page; //将整数赋值给一个对象
 }
};

int main()
{
 CBook vbBook;
 vbBook=200;
 return 0;
}
=======

 
 
发表评论:
载入中。。。

 
 
 

梦翔儿网站 梦飞翔的地方 http://www.dreamflier.net
中华人民共和国信息产业部TCP/IP系统 备案序号:辽ICP备09000550号

Powered by Oblog.