C++基礎知識(一)

來源:互聯網
上載者:User
最近又重新開始學習了一下C++知識,發現自己還是又很多遺漏的角落。一步一個腳印是最有效。下面是一個基礎樣本:

#include "stdafx.h"

#include "iostream.h"

class student//基類

{

private:

 int stu_num;

 char* stuname;

 char* sex;

   

protected:

public:

 student(){};

 student(int num,char* name,char* sex);

 student* get();

 void virtual printstu();//虛函式宣告,一旦基類聲明虛函數,衍生類別就一定是虛函數即便不寫virtual

 void setname(char* name);

 void friend setsex(student* stu,char* sex);

 student operator++(int);//運算子多載

};

student student::operator ++(int)

{

 student s;

 s.stu_num=stu_num++;

 return s;

}

void setsex(student* stu,char* sex)//友元函數

{

 stu->sex=sex;

}

inline void student::setname(char* name)//內嵌函式

{

 this->stuname=name;

}

student::student(int num,char* name,char* sex)//建構函式

{

    this->stu_num=num;

 this->stuname=name;

 this->sex=sex;

}

void student::printstu()//列印函數

{

 cout<<this->sex<<"\n"<<this->stuname<<"\n"<<this->stu_num<<"\n"<<endl;

}

student* student::get()//返回本身對象指標

{

     return(this);

}

class univstudent:public student//衍生類別

{

private:

 int age;

    char* edubkground;

public:

 //衍生類別建構函式初始化

 univstudent(int age,char *edubkground,int num,char* name,char* sex):age(age),edubkground(edubkground),student(num,name,sex){}

    void printstu();

};

void univstudent::printstu()

{

 student::printstu();

 cout<<this->age<<"\n"<<this->edubkground<<"\n"<<endl;

}

void main()

{

 //利用指標建立對象

    printf("利用指標建立對象:\n");

 student *stu1=new student(3,"qinhui","male");

    stu1->printstu();

    stu1->get()->printstu();

 //直接建立對象並初始化

    printf("直接建立對象並初始化:\n");

 student stu2(1,"yuanyuan","female");

 student *p;

 p=&stu2;

 stu2.printstu();//用對象調用函數

    p->printstu();//用指標調用函數

 //虛函數樣本

 printf("虛函數樣本:\n");

 univstudent univstu(23,"college",1,"qinhui","male");

 student *u2=new student(2,"yuanyuan","female");//建基類指標

 u2->printstu();//調用基類建構函式

 u2=&univstu;

 u2->printstu();//調用衍生類別建構函式

 //內嵌函式樣本

 printf("內嵌函式樣本\n");

 stu1->setname("秦輝");

 stu1->printstu();

    //友元函數樣本

 printf("友元函數樣本\n");

 setsex(stu1,"男");

 stu1->printstu();

    //重載運算子樣本

 printf("重載運算子樣本:\n");

 stu2++;

    stu2.printstu();

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.