传智C++课程笔记-1
編譯環(huán)境 VS2008
下面是使用面向?qū)ο蟮姆椒ň帉慍++程序,實(shí)現(xiàn)輸入圓的半徑輸出圓的周長(zhǎng)和面積的C++程序
#include <iostream> //包含C++的頭文件using namespace std; //使用一個(gè)標(biāo)準(zhǔn)的命名空間void main01() {//printf("hello world!\n");cout << "hello world!"<<endl;system("pause");//return 0; }//編寫一個(gè)求圓的面積的函數(shù) //使用面向過程的方法求解一個(gè)圓的面積以及周長(zhǎng) int main02() {double r = 0; //double s = 0,grith = 0;const double pi = 3.141159;cout<<"請(qǐng)輸入圓的半徑:";cin>>r;grith = 2*pi*r;s = pi*r*r;cout<<"圓的半徑為:"<<r<<endl;cout<<"圓的面積為:"<<s<<endl;cout<<"圓的周長(zhǎng)為:"<<grith<<endl;system("pause");return 0;}class Circle{ public: //類的訪問控制double radius;void Set_Radius(double r){radius = r;};double Get_Radius(){return radius;};double Get_Grith(){return 2*3.14f*radius;}; //通過成員函數(shù)獲取成員變量double Get_Area(){return 3.14f*radius*radius;}; };//使用面向?qū)ο蟮姆椒ň帉懸粋€(gè)程序,獲取圓的半徑,最后輸出圓的周長(zhǎng)和圓的面積//在C++中變量有一個(gè)好聽的名字叫做屬性 int main() {Circle A,B; //用類定義兩個(gè)對(duì)象double r = 0,R =0;cout << "請(qǐng)輸入R1的值:";cin >> r;cout << "請(qǐng)輸入R2的值:";cin >> R;A.Set_Radius(r); //類的調(diào)用cout << "A.Radius = " << A.Get_Radius() << endl;cout << "A.Grith = " << A.Get_Grith() << endl;cout << "A.Area = "<< A.Get_Area() << endl;B.Set_Radius(R); //類的調(diào)用cout << "B.Radius = " << B.Get_Radius() << endl;cout << "B.Grith = " << B.Get_Grith() << endl;cout << "B.Area = "<< B.Get_Area() << endl;system("pause"); //實(shí)現(xiàn)讓程序調(diào)試運(yùn)行的時(shí)候能夠停留在這個(gè)頁(yè)面方便程的調(diào)試return 0; } #include<iostream> using namespace std;//c++的命名空間 class circle { public:double r;double pi = 3.1415926;double area = pi*r*r; };// 2010編譯不通過 但是在2013編譯器能編譯通過 int main() {circle c1; //c1在對(duì)象初始化的時(shí)候進(jìn)行了相應(yīng)的對(duì)象的初始化,也就是進(jìn)行了 // //double r; //double pi = 3.1415926; //double area = pi*r*r; //cout << "please input your r" << endl;cin >> c1.r; //這個(gè)時(shí)候雖然對(duì)r進(jìn)行了賦值但是這時(shí)已經(jīng)不在進(jìn)行pi和area的運(yùn)算;cout << c1.area << endl; //亂碼,在調(diào)用的時(shí)候其實(shí)的得到的是r,沒有初始化時(shí)的內(nèi)存空間的值area,所以area是一個(gè)很大的值system("pause");return 0; } #include <iostream> #include <string.h> #include <stdlib.h> using namespace std;//文件iosream中沒有引入標(biāo)準(zhǔn)的 std;需要程序員手工的寫 int main31() {system("pause");return 0; } //怎樣定義一個(gè)命名空間 namespace namespaceA {int a = 10;} namespace namespaceB {int a = 20;namespace namespaceC{struct Teacher{char name[32];int age ;};} }//使用命名空間int main() {char buff[25];int i = 3;sprintf(buff,"%d",i);using namespaceA::a ;cout <<a << endl;system("pause");return 0; }和C語(yǔ)言相比C++的實(shí)用性增加主要是:
- C語(yǔ)言的變量必須在作用域開始的地方定義C++中更加強(qiáng)調(diào)語(yǔ)言的使用性,所有的變量都能夠在使用的時(shí)候在定義;
register關(guān)鍵字增強(qiáng)
register關(guān)鍵字請(qǐng)求編譯器讓變量a直接放在寄存器里面,速度快,因此在C語(yǔ)言中register修飾的變量不能夠取地址,但是在C++中能夠取得register變量的值。
在C++中register主要有一下的變化:
C++編譯器有自己的優(yōu)化方式,不使用register也能夠做優(yōu)化,C++中能夠取得register變量的地址。
C++中變量檢測(cè)增強(qiáng),在C語(yǔ)言中 重復(fù)的定義多個(gè)同名的全局變量是合法的,但是在C++中不允許同時(shí)定義多個(gè)同名的全局變量,在C語(yǔ)言中多個(gè)同名的全局變量會(huì)被鏈接到全局?jǐn)?shù)據(jù)區(qū)域的的同一個(gè)地址空間上;
struct類型增強(qiáng)
C語(yǔ)言的struct定義了一組變量的集合,C編譯器并不認(rèn)為這是一種新的類型,C++中struct是一個(gè)新類型的定義聲明
C++中所有的變量和函數(shù)都必須有類型的聲明C語(yǔ)言中的默認(rèn)類型在C++中是不合法的
C++中新增Bool類型的關(guān)鍵字并且C++中Bool類型的數(shù)據(jù)只有兩種取值,true和false,理論上bool只占一個(gè)字節(jié)。如果多個(gè)bool類型放在一起可能各占一個(gè)bit,這取決于編譯器得到實(shí)現(xiàn),
三目運(yùn)算符在C和C++編譯器的實(shí)現(xiàn)
- 三目運(yùn)算符在C語(yǔ)言中,返回變量的值,不能作為變量使用,
- 三目運(yùn)算符在C++中返回的是變量本身,能夠作為左值并能夠放在程序的任何地方
但是當(dāng)三目運(yùn)算符中返回值有一個(gè)可能是常量值的時(shí)候,則不能作為左值使用(a < b ? 1 : b) = 30;因?yàn)橛锌赡芊祷氐氖浅A?,因此不能夠做左值;
- -
總結(jié)
以上是生活随笔為你收集整理的传智C++课程笔记-1的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宏基因组大数据分析的质量控制流程规范
- 下一篇: 2017第二届中国信息通信大数据大会将于