掌握C++基础
以下是笔者在ubuntu系统下编译运行通过的一些反应c++基础特性的例子,包括类,结构体,构造函数,析构函数,函数的重载,this指针,类的继承,虚函数,函数的覆盖和隐藏等。(由于格式问题代码中的乱码是一些文字描述)
/*#include<iostream>
#include<string.h>
using namespace std;
struct Person
{
char name[20];
int num;
};
int main()
{
int i;
int j;
Person leader_name[3]={"li",0,"jia",0,"wang",0};
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++;
}
for(i=0;i<3;i++)
{
cout<<leader_name[i].name<<":"<<leader_name[i].num<<endl;
}
}
杩欎釜鏄叧浜庣粨鏋勪綋鏁扮粍鐨勪緥瀛?************************/
/*
#include <iostream>
using namespace std;
class point
{
public: int x;
public: int y;
public: void out()
{
cout<<x<<y<<endl;
}
};
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++,涓昏鏄痗++璇硶鐨勪竴浜涘熀鏈壒寰?
掌握C++基础的更多相关文章
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- HTTPS 互联网世界的安全基础
近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- .NET基础拾遗(5)多线程开发基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
- .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]
方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...
随机推荐
- devm_kzalloc and kmalloc
Move resources allocated using unmanaged interface to managed devm interface So today let's talk abo ...
- iOS swift使用xib绘制UIView
目标:用xib绘制一个UIView,在某个ViewController中调用. 三个文件:ViewController.Swift DemoView.swift DemoView.xib ...
- LabVIEW中的UDP通信
UDP(user datagram protoco1)提供向接收端发送信息的最简便的协议,与TCP不同,UDP不是面向连接的可靠数据流传输协议,而是面向操作的不可靠数据流传输协议.UDP在数据传输之前 ...
- hdu2018java
母牛的故事 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- Android(java)学习笔记181:利用Service在后台播放背景音乐
1.在android应用程序里,有一种没有UI的类(android.app.Service)——Service.简单来说,Service是一个 background process(背景程序),通过背 ...
- HTML+CSS基础学习笔记(1)
一.了解HTML.CSS.JS 1.HTML是网页内容的载体. 内容就是网页制作者放在页面上想要让用户浏览的信息,可以包含文字.图片.视频等. 2.CSS样式是表现. 用来改变内容外观的东西称之为表现 ...
- 【原创教程】鲸吞HTML
首先,我们的angularJS课程分为三大模块: HTML/CSS/JS基础. angularJS详解. angualrJS的一些实用框架讲解. 其中,第一大模块的对象是对前端开发技术有点了解但不熟悉 ...
- C# 文件粉碎
>文件粉碎的流程 填充文件 更改最后使用/创建时间 更改名称 将大小改为 0 kb 删除 using System; using System.Collections.Generic; usin ...
- 学习java随笔第六篇:数组
一维数组 创建一维数组并输出 public class OneDimensionalArray { public static void main(String argas[]) { int i[]= ...
- A题笔记(2)
No. 1505 文件读相关 #include <fstream> #include <sstream> <fstream>支持文件的IO <sstream& ...