From Java to C++ 第一篇

前言

C++ 作為 C語言的延伸,而Java 被設(shè)計成 C++ 簡化的繼任者,他們都有著很多共同點,如基本類型相同:int、char、float、long、double,當(dāng)然也有一些不同,如Java char 是 2個字節(jié),一個字節(jié)8位,如:0000 1111,那么2個字節(jié)就是16位,而C++里的char只有8位,也就是1個字節(jié),這個要注意。它們還都有表示true、false的數(shù)據(jù)類型,且if ... else,while,for和switch都是相同的,為了更快的能從Java轉(zhuǎn)到C++,我準(zhǔn)備了這篇文章,希望對你也有幫助。

打印

Java

System.out.print("Hello World!"); 
System.out.println("Hello World!");

C++

//第一種實現(xiàn)
std::cout << "Hello World!";
std::cout << "Hello World!" << std::endl;
//第二種,如果使用命名空間就不需要再std::
#include <iostream>
using namespace std;
int main() {
    cout << "Hello World!";
    cout << "Hello World!" << endl;
    return 0;
}

常量

Java

final int x = 2;
final int y = 1;

C++

//使用 #define 預(yù)處理器。
#define X 2
#define Y 1
//使用 const 關(guān)鍵字。
const int  X = 2;
const int  Y = 1;

變量

Java

   int w;
   int z = 2;
    z = 3;
    w = 1;

C++

   int w;
   int z = 2;
    z = 3;
    w = 1;

賦值為空

Java

String lastName;
lastName = null

C++

string lastName;
lastName = NULL; // 編譯器報錯,無法賦值,想要釋放調(diào)用 lastName.clear();函數(shù)

判空

Java

if(text != null){
  int length = text.length();
}

C++

    string text;
    //C++ 字符串無需判空,返回長度0
    cout << text.length() << endl;

字符拼接

Java

String name = "John";
String lastName = "Smith";
String text = "My name is: " + name + " " + lastName;

C++

 string name = "John";
 string lastName = "Smith";
 string text = "My name is: " + name + " " + lastName;

換行字符

Java

String text = "First Line\n" +
              "Second Line\n" +
              "Third Line";

C++

string  text = "First Line\nSecond Line\nThird Line";

三元運(yùn)算

Java

String text = x > 5 ? "x > 5" : "x <= 5";

C++

string  text = x > 5 ? "x > 5" : "x <= 5";

位操作

Java

int andResult  = a & b;
int orResult   = a | b;
int xorResult  = a ^ b;
int rightShift = a >> 2;
int leftShift  = a << 2;

C++

int andResult  = a & b;
int orResult   = a | b;
int xorResult  = a ^ b;
int rightShift = a >> 2;
int leftShift  = a << 2;

父子關(guān)系

Java

if(x instanceof Integer){ }

C++

(is_base_of<Integer, x>::value ? "true" : "false")

類型轉(zhuǎn)換

Java

double a = 1.9;
int b = (int) a;
int d = a; //報錯
String c = String.valueOf(b);

C++

double a = 1.9;
int b = (int)a;
int d = a; //隱士轉(zhuǎn)換
string c = to_string(b); //字符串轉(zhuǎn)換

Switch

Java

        int a = 1;
        String b;
        switch (a) {
            case 0:
            case 1:
                b = "1";
                break;
            case 2:
                b = "2";
                break;
            default:
                b = "default";
                break;
        }

C++

        int a = 1;
        String b;
        switch (a) {
            case 0:
            case 1:
                b = "1";
                break;
            case 2:
                b = "2";
                break;
            default:
                b = "default";
                break;
        }

For循環(huán)

Java

for (int i = 1; i < 11 ; i++) { }

for (int i = 1; i < 11 ; i+=2) { }

for (String item : collection) { }

C++

for (int i = 1; i < 11 ; i++) { }

for (int i = 1; i < 11 ; i+=2) { }

for (string &item : collection) { }
//或 auto 類型也是 C++11 新標(biāo)準(zhǔn)中的,用來自動獲取變量的類型
for (auto &item : collection) { }

集合

Java

final List<Integer> numbers = Arrays.asList(1, 2, 3);

C++

int numbers[5] = {1, 2, 3};


Map

Java

final Map<Integer, String> map = new HashMap<Integer, String>();
map.put(1, "One");
map.put(2, "Two");
map.put(3, "Three");

C++

    map < int , string > map;
    map.insert(pair < int,string > (1,"One"));
    map.insert(pair < int,string > (1,"Two"));
    map.insert(pair < int,string > (1,"Three"));

簡單總結(jié)下

我們回顧一下,這次對C++基本類型、位運(yùn)算、類型判斷、操作符,集合等做了簡單的對比,其實不難發(fā)現(xiàn),C++真的和Java很像,總體感覺C++書寫稍復(fù)雜一些,也有比Java寫起來簡單的部分等,有更多的新奇等著你去發(fā)現(xiàn),下期接著研究,拜。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容