传智C++课程笔记-1
生活随笔
收集整理的這篇文章主要介紹了
传智C++课程笔记-1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
編譯環境 VS2008
下面是使用面向對象的方法編寫C++程序,實現輸入圓的半徑輸出圓的周長和面積的C++程序
#include <iostream> //包含C++的頭文件using namespace std; //使用一個標準的命名空間void main01() {//printf("hello world!\n");cout << "hello world!"<<endl;system("pause");//return 0; }//編寫一個求圓的面積的函數 //使用面向過程的方法求解一個圓的面積以及周長 int main02() {double r = 0; //double s = 0,grith = 0;const double pi = 3.141159;cout<<"請輸入圓的半徑:";cin>>r;grith = 2*pi*r;s = pi*r*r;cout<<"圓的半徑為:"<<r<<endl;cout<<"圓的面積為:"<<s<<endl;cout<<"圓的周長為:"<<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;}; //通過成員函數獲取成員變量double Get_Area(){return 3.14f*radius*radius;}; };//使用面向對象的方法編寫一個程序,獲取圓的半徑,最后輸出圓的周長和圓的面積//在C++中變量有一個好聽的名字叫做屬性 int main() {Circle A,B; //用類定義兩個對象double r = 0,R =0;cout << "請輸入R1的值:";cin >> r;cout << "請輸入R2的值:";cin >> R;A.Set_Radius(r); //類的調用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); //類的調用cout << "B.Radius = " << B.Get_Radius() << endl;cout << "B.Grith = " << B.Get_Grith() << endl;cout << "B.Area = "<< B.Get_Area() << endl;system("pause"); //實現讓程序調試運行的時候能夠停留在這個頁面方便程的調試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在對象初始化的時候進行了相應的對象的初始化,也就是進行了 // //double r; //double pi = 3.1415926; //double area = pi*r*r; //cout << "please input your r" << endl;cin >> c1.r; //這個時候雖然對r進行了賦值但是這時已經不在進行pi和area的運算;cout << c1.area << endl; //亂碼,在調用的時候其實的得到的是r,沒有初始化時的內存空間的值area,所以area是一個很大的值system("pause");return 0; } #include <iostream> #include <string.h> #include <stdlib.h> using namespace std;//文件iosream中沒有引入標準的 std;需要程序員手工的寫 int main31() {system("pause");return 0; } //怎樣定義一個命名空間 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語言相比C++的實用性增加主要是:
- C語言的變量必須在作用域開始的地方定義C++中更加強調語言的使用性,所有的變量都能夠在使用的時候在定義;
register關鍵字增強
register關鍵字請求編譯器讓變量a直接放在寄存器里面,速度快,因此在C語言中register修飾的變量不能夠取地址,但是在C++中能夠取得register變量的值。
在C++中register主要有一下的變化:
C++編譯器有自己的優化方式,不使用register也能夠做優化,C++中能夠取得register變量的地址。
C++中變量檢測增強,在C語言中 重復的定義多個同名的全局變量是合法的,但是在C++中不允許同時定義多個同名的全局變量,在C語言中多個同名的全局變量會被鏈接到全局數據區域的的同一個地址空間上;
struct類型增強
C語言的struct定義了一組變量的集合,C編譯器并不認為這是一種新的類型,C++中struct是一個新類型的定義聲明
C++中所有的變量和函數都必須有類型的聲明C語言中的默認類型在C++中是不合法的
C++中新增Bool類型的關鍵字并且C++中Bool類型的數據只有兩種取值,true和false,理論上bool只占一個字節。如果多個bool類型放在一起可能各占一個bit,這取決于編譯器得到實現,
三目運算符在C和C++編譯器的實現
- 三目運算符在C語言中,返回變量的值,不能作為變量使用,
- 三目運算符在C++中返回的是變量本身,能夠作為左值并能夠放在程序的任何地方
但是當三目運算符中返回值有一個可能是常量值的時候,則不能作為左值使用(a < b ? 1 : b) = 30;因為有可能返回的是常量1,因此不能夠做左值;
- -
總結
以上是生活随笔為你收集整理的传智C++课程笔记-1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宏基因组大数据分析的质量控制流程规范
- 下一篇: C++引用说明