最近又重新開始學習了一下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();
}