如下是筆者在ubuntu系統下編譯運行經過的一些反應c++基礎特性的例子,包括類,結構體,構造函數,析構函數,函數的重載,this指針,類的繼承,虛函數,函數的覆蓋和隱藏等。(因爲格式問題代碼中的亂碼是一些文字描述)ios
/*#include<iostream>
#include<string.h>
using namespace std;
struct Person
{
char name[20];
int num;c++
};
int main()
{
int i;
int j;
Person leader_name[3]={"li",0,"jia",0,"wang",0};ubuntu
char leader[20];函數
for(i=0;i<10;i++)
{
cin>>leader;
for(j=0;j<3;j++)
if(strcmp(leader,leader_name[j].name)==0)
leader_name[j].num++;this
}
for(i=0;i<3;i++)
{
cout<<leader_name[i].name<<":"<<leader_name[i].num<<endl;spa
}指針
}繼承
榪欎釜鏄叧浜庣粨鏋勪綋鏁扮粍鐨勪緥瀛?************************/
/*
#include <iostream>
using namespace std;
class point
{
public: int x;
public: int y;
public: void out()
{
cout<<x<<y<<endl;
}ci
};string
int main()
{
point pt;
pt.x=0;
pt.y=0;
pt.out();
return 0;
}
榪欎釜鏄竴涓畝鍗曠殑鑷畾涔夌被鐨勫簲鐢?*************************/
/*
#include<iostream>
using namespace std;
class point
{
public:
int x;
int y;
point()//榪欎釜鏄釜鏋勯€犲嚱鏁板畠涓昏瀹屾垚鐨勬槸瀵圭被鐨勬垚鍛樿繘琛屽垵濮嬪寲瀹氫箟
{
x=10;
y=12;
}
void out()
{
cout<<x<<y<<endl;
}
};
int main()
{
point pt;
pt.out();
return 0;
}
鏋勯€犲嚱鏁扮殑綆€鍗曞簲鐢?**************************/
/*********************
#include<iostream>
using namespace std;
class point
{
public:
int x;
int y;
point()//鏋勯€犲嚱鏁?{
x=0;
y=0;
}
point(int a,int b)//鏋勯€犲嚱鏁?錛岃繖涓湁鍙傛暟
{
x=a;
y=b;
}
void out()
{
cout<<x<<endl;
cout<<y<<endl;
}
};
int main()
{
point pt(2,2);
point pt1;
pt.out();
pt1.out();//鏍規嵁涓嶅悓鐨勫畾涔夎皟鐢ㄥ搴旂殑鍑芥暟
}
////////////////////鍑芥暟鐨勯噸杞界殑綆€鍗曠粌涔?/
/************************************
#include<iostream>
using namespace std;
class point
{
public:
int x;
int y;
point()
{
x=0;
y=0;
}
point(int a,int b)
{
x=a;
y=b;
}
void out()
{
cout<<x<<endl;
cout<<y<<endl;
}
void init(int x, int y)//this鎸囬拡錛屼粬鎬繪槸鎸囧悜瀵硅薄鏈韓錛屼唬琛ㄥ璞$殑鍦板潃
{
x=x;
y=y;
}
};
int main()
{
point pt1(5,5);
point pt;
pt.init(10,10);//鉶界劧init鍑芥暟鏈変袱涓弬鏁幫紝鍥犱負this鎸囬拡鐨勫師鍥犲湪璋冪敤鍑芥暟鏃舵槸榛樿璋冪敤瀵硅薄鏈韓鐨勫湴鍧€鐨勩€?pt.out();
pt1.out();
return 0;
}
//this鎸囬拡鐨勭畝鍗曞簲鐢?*???????????????????????????????/????????????????*/
/*******************************************************
#include<iostream>
using namespace std;
class animal
{
public:
void eat()
{
cout<<"鍚冨悆鍚?<<endl;
}
void sleep()
{
cout<<"鐫¤"<<endl;}
void breath()
{
cout<<"鍛煎惛"<<endl;
}
};
class fish:public animal//綾葷殑緇ф壙鎬э紝fish綾葷戶鎵誇簡animal榪欎釜綾諱腑鐨勫嚱鏁?{};
int main()
{
animal an;
fish fh;
an.eat();
fh.sleep();
fh.eat();
fh.breath();
return 1;
}
//鍏充簬綾葷殑緇ф壙鎬х殑涓€涓皬渚嬪瓙
**********************************************************/
/*
#include<iostream>
using namespace std;
class animal
{
public:
animal()
{
cout<<"鐖剁被鐨勬瀯閫犲嚱鏁板紑濮?<<endl;
}
~animal()
{
cout<<"鐖剁被鐨勬瀽鏋勫嚱鏁?<<endl;
}
};
class fish:animal
{
public:
fish()
{
cout<<"瀛愮被鏋勯€犲嚱鏁?<<endl;
}
~fish()
{
cout<<"瀛愮被鐨勬瀽鏋勫嚱鏁?<<endl;
}
};
int main()
{
fish fh;
return 0;
}
//瀛愮被鍦ㄨ皟鐢ㄨ嚜宸辯殑鏋勯€犲嚱鏁版椂嫺佺▼搴旇鏄厛璋冪敤鐖剁被鐨勬瀯閫犲嚱鏁扮劧鍚庡瓙綾葷殑鏋勯€犲嚱鏁板瓙綾葷殑鏋愭瀯鍑芥暟鏈€鍚庢槸鐖剁被鐨勬瀽鏋勫嚱鏁般€傚浜庣埗綾葷殑鐨勬瀯閫犲嚱鏁板惈鏈夊弬鏁版儏鍐靛瓙綾葷殑鏋勯€犺鏄劇ず鐨勫幓璋冪敤鐖剁被鐨勬瀯閫犲嚱鏁版墠琛屻€?/////////////////////////////////////////////////////////////綾諱腑鐨勬垚鍛樻湁涓夌綾誨瀷public private protect 鍦ㄧ被鐨勭戶鎵垮叧緋諱腑錛屽瓙綾誨鏋滄槸浠ublic緇ф壙鐖剁被錛屽熀綾葷殑鎴愬憳浠嶇劧鏄互鍘熸潵鐨勮闂潈闄愬湪瀛愮被涓璁塊棶銆傞粯璁ょ殑鎯呭喌鏄槸浠rivate綾誨艦璁塊棶鐨勶紝榪欑鎯呭喌鍩虹被鐨勬垚鍛樺皢浠rivate綾誨瀷鍦ㄥ瓙綾諱腑琚闂紝褰撲互public綾誨瀷璁塊棶鏃訛紝鍩虹被鐨㓨ublic鍜宲rotect鍙橀噺鍦ㄥ瓙綾諱腑閮藉彉鎴愪簡public綾誨瀷鐨勮闂潈闄愩€?//鐖剁被涓殑private綾誨瀷鍙橀噺涓嶈兘琚瓙綾昏闂€?
///////////////////////
#include<iostream>
using namespace std;
class A
{
public:
void out();
};
class B
{
public:
void out1();
};
void A::out()
{
cout<<"A綾諱腑鐨勫嚱鏁?<<endl;
}
void B::out1()
{
cout<<"B綾葷殑鍑芥暟"<<endl;
}
class C:public A,public B//瀛愮被鍚屾椂緇ф壙涓や釜鐖剁被
{
public:
void show();
};
void C::show()
{
cout<<"瀛愮被涓殑鍑芥暟"<<endl;
}
int main()
{
C c1;
c1.out();
c1.out1();
c1.show();
return 0;
}
//瀛愮被鐨勫閲嶇戶鎵誇緥瀛?
#include<iostream>
using namespace std;
class animal
{
public:
void eat()
{cout<<""<<endl;}
void breath()
{cout<<"鍔ㄧ墿鍛煎惛"<<endl;}
};
class fish:public animal
{
public:
void breath()
{cout<<"fish breath"<<endl;}
};
int main()
{
fish fh;
fh.breath();
}
///////////////////////////////////////////////
//鍏充簬鍑芥暟鐨勮鐩栵紝闅愯棌錛岄噸杞戒箣闂寸殑鍏崇郴錛氬嚱鏁扮殑瑕嗙洊瑕佹眰鐖剁被鍜屽瓙綾葷殑鍑芥暟瀹屽叏涓€鏍峯寘鎷弬鏁版儏鍐碉紝鍚屾椂鍩虹被鍑芥暟瑕佹槸鉶氬嚱鏁幫紝涓や釜鍑芥暟涓€涓湪鍩虹被涓€涓湪瀛愮被銆傚嚱鏁扮殑闅愯棌涔熸槸鍦ㄥ熀綾諱笌瀛愮被涓紝涓嶅悓涔嬪鏄熀綾葷殑鍑芥暟涓嶆槸鉶氬嚱鏁幫紝鍩虹被鍜屽瓙綾昏涓€鏍鳳紙鍙傛暟鍙互蹇界暐錛夎繖縐嶆儏鍐典笅瀛愮被涓殑鍑芥暟灝嗕細鎶婂熀綾諱腑鐨勫嚱鏁伴殣鈃忋€傚嚱鏁扮殑閲嶈澆鏄湪涓€涓被涓彲浠ユ湁澶氫釜鍑芥暟鍚嶄竴鏍風殑鍑芥暟瀛樺湪銆?*/
#include<iostream>
using namespace std;
class A
{
public:
virtual void fn(int i)
{
cout<<"鍩虹被鉶氬嚱鏁?<<endl;
}
void yfn(int f)
{
cout<<"鍩虹被鍑芥暟"<<endl;
}
};
class B:public A
{
public:
void fn(int i)
{
cout<<"瀛愮被鍑芥暟"<<endl;//瑕嗙洊浜嗗熀綾葷殑鉶氬嚱鏁?}
void yfn(int c){cout<<"瀛愮被鍑芥暟1"<<endl;//闅愯棌浜嗗熀綾葷殑鍑芥暟}};int main(){B b;//瀹氫箟涓€涓瓙綾誨彉閲?A *pa=&b;//瀹氫箟涓€涓熀綾葷殑鎸囬拡鎸囧悜瀛愮被鐨勫湴鍧€B *pb=&b;//瀹氫箟涓€涓瓙綾葷殑鎸囬拡鎸囧悜瀛愮被鐨勫湴鍧€A a;A *pA=&a;pa->fn(5);pb->A::fn(5);pA->fn(5);pa->yfn(2);pb->yfn(2);return 0;}///////////////////////////鎺屾彙c++,涓昏鏄痗++璇硶鐨勪竴浜涘熀鏈壒寰?