C++學習(一):由C過渡到C++

前言:我在本科雖然學過C語言和C++的課程,但"衆所周知的原因"…好吧,沒有實踐、不經常使用的語言是沒有靈魂的…所以在之前參加口罩和安全帽識別比賽以後被SDK的編寫打擊到的我決定跟着網課重新學習一遍,也是方便之後的力扣刷題吧。網課跟的是51CTO學院裏的鮑松山老師,講的還不錯,這裏安利一波~ ~

-----------------------------------------------------------------------------------------------------------------------------------------

由C過渡到C++

所有C語言中的東西都可以在C++中使用,完全兼容,但C++中的東西不一定在C中成立。故以下內容中C的部分皆可使用。

C和C++的不同在於:
1. 文件名不同 .c .cpp

2. 引入頭文件不同
   標準輸入輸出頭文件  #include<stdio.h>
   輸入輸出流頭文件      #include<iostream.h>

3. 輸出不同 printf cout

#include<stdio.h>

void main()
{
	printf("Hello C\n");
	
	char ch = 'A';
	int i = 10;
	printf("ch = %c\n",ch);
	printf("i = %d\n",i);
}

cpp:
#include<iostream.h>

void main()
{
	//cout=printf 兩個<<是輸出運算符 end1=\n
	cout<<"Hello C++"<<end1;	

	char ch = 'A';
	int i = 10;
	cout<<ch<<end1;
	cout<<i<<end1;
	//輸出就是 A \n 10. 不需要格式控制字符
}

4. C講究先定義再使用,C++可以邊使用邊定義;

void main()
{
	int i;
	for(i=0;i<10,++i)
	//若以上兩句改爲:for(int i=0;i<10,++i) ,則在C中會報錯
	{
		printf("i = %d\n",i);
	}
}

5. C必須得在處理語句之前把所有變量定義好,C++無所謂,什麼時候用什麼時候定義;

6. 函數重載。即函數名一樣,但參數列表不同,但不能函數一模一樣。下面的語句在C語言報錯(不允許重載),在C++可使用(允許重載);

int Max(int a,int b)
{
	return a>b?a:b;
}

double Max(double a, double b)
{
	return a>b?a:b;
}

void main()
{
	Max(1.1, 2.2};
}

7. 命名空間。C沒有,C++有

#include<iostream>
using namespace std; //命名空間.不帶.h的是比較新的,會包含.h的;而std是標準輸入輸出,裏面定義了cout等等...

//命名空間的作用,同樣的函數,只要不同時使用,就可以成立。
namespace My_Space
{
	void fun()
	{
		cout<<"fun1"<<end1;
	}
};

namespace You_space
{
	void fun()
	{
		cout<<"fun2"<<end1;
	}
}

using namespace You_Space;
void main()
{
	fun();  //輸出是fun2
}

8. 自定義類型。C中的結構體定義爲struct,且不能定義空結構體;C++則定義爲class,且可以爲空(當然struct也可運行,且可以爲空)

struct Test
{
	int a;
}
void main()
{
	struct Test t;
}
class Test
{};
void main()
{
	Test t;
}

9. C語言是面向過程的,其以函數function爲基礎;C++是面向對象的,其以對象爲基礎。通俗點說,比如吃飯Eat()和睡覺Sleep(),C語言關心的是這兩個過程,至於誰吃飯,無所謂;而C++一定要指明,誰,吃飯,誰,睡覺,否則過程毫無意義。

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章