简单类的定义和继承
class book
{
?? ?char* title;//書名
?? ?int num_pages;//頁數(shù)
?? ?char * writer;//作者姓名
public:
?? ?book( char* the_title, int pages, const char* the_writer) :num_pages(pages)
?? ?{
?? ??? ?title = new char[strlen(the_title) + 1];
?? ??? ?strcpy(title, the_title);
?? ??? ?writer = new char[strlen(the_writer) + 1];
?? ??? ?strcpy(writer, the_writer);
?? ?}
?? ?~book()
?? ?{
?? ??? ?delete[] title;
?? ??? ?delete[] writer;
?? ?}
?? ?int numOfPages()const
?? ?{
?? ??? ?return num_pages;
?? ?}
?? ?/*一、概念
?? ?當(dāng)const在函數(shù)名前面的時候修飾的是函數(shù)返回值,在函數(shù)名后面表示是常成員函數(shù),
?? ?
?? ?? 該函數(shù)不能修改對象內(nèi)的任何成員,只能發(fā)生讀操作,不能發(fā)生寫操作。
?? ??? ?二、原理:
?? ??? ?我們都知道在調(diào)用成員函數(shù)的時候編譯器會將對象自身的地址作為隱藏參數(shù)傳遞給函數(shù),
?? ??? ?在const成員函數(shù)中,既不能改變this所指向的對象,也不能改變this所保存的地址,
?? ??? ?this的類型是一個指向const類型對象的const指針。*/
?? ?const char* thetitle()const
?? ?{
?? ??? ?return title;
?? ?}
?? ?const char* thewriter()
?? ?{
?? ??? ?return writer;
?? ?}
};
class teachingMaterial :public book
{
?? ?char * course;
public:
?? ?teachingMaterial( char* the_title, int pages, char* the_writer, const char* the_course)
?? ??? ?:book(the_title,pages,the_writer)
?? ?{
?? ??? ?course = new char[strlen(the_course) + 1];
?? ??? ?strcpy(course, the_course);
?? ?}
?? ?~teachingMaterial()
?? ?{
?? ??? ?delete[] course;
?? ?}
?? ?const char* theCourse()const
?? ?{
?? ??? ?return course;
?? ?}
};
int _tmain()
{
?? ?teachingMaterial a_book("C++語言程序設(shè)計", 299, "張三", "面向?qū)ο蟮某绦蛟O(shè)計");
?? ?cout << "教材名: " << a_book.thetitle() << endl;
?? ?cout << "頁數(shù): " << a_book.numOfPages ()<< endl;
?? ?cout << "作者: " << a_book.thewriter() << endl;
?? ?cout << "相關(guān)課程: " << a_book.theCourse() << endl;
}
轉(zhuǎn)載于:https://www.cnblogs.com/huninglei/p/5435869.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
- 上一篇: Android Studio Gradl
- 下一篇: 人工智能大数据时代下的工程伦理问题探讨