中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C 之C 與C的區(qū)別一

C++與C區(qū)別概述

C++ 是在 C 語言的基礎(chǔ)上發(fā)展而來的一門編程語言,它在語法、數(shù)據(jù)類型、函數(shù)、運(yùn)算符等方面都比 C 語言更為豐富和靈活,同時也具有更好的支持面向?qū)ο缶幊蹋∣OP)的能力,因此被廣泛應(yīng)用于各種系統(tǒng)和應(yīng)用程序的開發(fā)中。以下是 C++ 與 C 語言的一些主要區(qū)別:

  • 支持面向?qū)ο缶幊蹋篊++ 支持面向?qū)ο缶幊痰奶匦?,例如封裝、繼承、多態(tài)等,而 C 語言并不支持。
  • 操作符重載:C++ 允許用戶對運(yùn)算符進(jìn)行重載,即可以自定義運(yùn)算符的含義和操作對象,而在 C 語言中則不支持此功能。
  • 異常處理:C++ 支持異常處理機(jī)制,可以捕獲和處理程序運(yùn)行時遇到的異常,而 C 語言則需要通過錯誤碼等方式進(jìn)行錯誤處理。
  • 標(biāo)準(zhǔn)庫:C++ 標(biāo)準(zhǔn)庫中包含了大量的庫函數(shù)和容器,例如 string、vector、map 等,而 C 語言的標(biāo)準(zhǔn)庫則比較簡單,只包含了常用的庫函數(shù)。
  • 命名空間:C++ 中支持命名空間的概念,可以幫助避免命名沖突的問題,而 C 語言中則不支持。
  • 自動類型推斷:C++11 引入了自動類型推斷關(guān)鍵字 auto 和 decltype,可以根據(jù)賦值語句的類型推斷出變量的類型,而在 C 語言中則需要手動聲明變量類型。

以上只是 C 和 C++ 之間的一些簡單區(qū)別,實(shí)際上它們在很多方面有著類似的語法和特性。對于學(xué)習(xí)者來說,如果已經(jīng)掌握了 C 語言,那么學(xué)習(xí) C++ 就會比較容易,因?yàn)?C++ 的語法和特性可以看作是 C 語言的擴(kuò)展和補(bǔ)充。接下來我們詳細(xì)了解一些基礎(chǔ)階段必須要掌握的C++與C的區(qū)別。

C++與C的區(qū)別詳解

文件區(qū)別

C 和 C++ 的文件有以下幾點(diǎn)不同:

  • 頭文件擴(kuò)展名不同:C 的頭文件擴(kuò)展名是 .h,而 C++ 的頭文件擴(kuò)展名是 .h 或 .hpp。
  • 標(biāo)準(zhǔn) I/O 庫的不同:C 使用的標(biāo)準(zhǔn) I/O 庫是 stdio.h,而 C++ 使用的是 iostreamC++標(biāo)準(zhǔn)庫中所有頭文件都是無h后綴包含:#include <iostream>
  • C++中包含C語言的頭文件有以下兩種方案直接包含:#include <stdio.h>無h后綴包含:#include <cstdio>

命名空間

在 C++ 中,命名空間是用于防止命名沖突的重要機(jī)制,可以將全局作用域分為若干個小的作用域,不同的空間可以分別存放變量、函數(shù)等名稱相同但含義不同的實(shí)體。C++ 中的命名空間是一個重要的語言特性,可以防止不同作用域內(nèi)同名實(shí)體的沖突。對于大型程序的開發(fā)來說,合理使用命名空間可以提高代碼的可讀性和可維護(hù)性。命名空間主要是掌握以下內(nèi)容

  • 如何創(chuàng)建正常包含方式創(chuàng)還能先聲明后實(shí)現(xiàn)的寫法
  • 如何訪問數(shù)據(jù)運(yùn)算符: 作用域分辨符 ::空間名::成員省略前綴的方式:using namespace 空間名;
  • 命名空間嵌套問題:剝洋蔥即可
  • 命名空間作用提高標(biāo)識符的使用率避免命名污染

命名空間| 創(chuàng)建

命名空間創(chuàng)建語法如下:

如下測試代碼:

#include <iostream>//直接實(shí)現(xiàn)namespace MM{ int age; int num; void print() { }}//先聲明后實(shí)現(xiàn)namespace Boy { void print(); struct Info ;}struct Boy::Info { int data;};void Boy::print() {}int main() { return 0;}

命名空間| 訪問

命名空間中的數(shù)據(jù)通過空間名和作用域分辨符::完成,作用域分辨符::還可以表示全局變量。如下測試代碼:

#include <iostream>//直接實(shí)現(xiàn)namespace MM{  int age;  int num;  void print()   {  }}int g_num = 99;int main() {  int g_num = 88;  //默認(rèn)就近原則  int x = g_num;    //使用全局  int y = ::g_num;  //1.空間名限定訪問  MM::age = 123;  MM::print();  //2.省略前綴訪問  //using namespace語句具有作用域  using namespace MM;  age = 123;  print();  return 0;}

using namespace 語句具有作用域,從使用處到第一次包含{}結(jié)束。

命名空間| 嵌套

命名空間嵌套使用剝洋蔥的方式訪問即可。如下測試代碼:

#include <iostream>namespace Cool{ int a = 1; namespace Mo { int b = 2; namespace Ying { int c = 3; } }}int main() { Cool::a=11; Cool::Mo::b = 22; Cool::Mo::Ying::c = 33; { using namespace Cool; a = 111; Mo::b = 222; Mo::Ying::c = 333; using namespace Mo; b = 2222; Ying::c = 3333; using namespace Ying; c = 33333; } { using namespace Cool::Mo::Ying; c = 444; } return 0;}

命名空間| C++內(nèi)置空間名std

在 C++ 中,std 是一個常用的內(nèi)置命名空間,包含了大量的常用庫函數(shù)和數(shù)據(jù)類型,例如 std::cout、std::string、std::vector 等。這些函數(shù)和數(shù)據(jù)類型都位于 std 命名空間中,使用時需要通過 std:: 前綴進(jìn)行引用?;蛘咴趯慍++程序的時候,在頭文件下面 直接使用:using namespace std; 有意思的是采用無后綴的包含C語言頭文件后,C語言所有函數(shù)也可以采用std::使用。

如下測試代碼:

#include <cstdio>int main() {  std::puts('coolmoying');  std::printf('coolmoying');  return 0;}

C++標(biāo)準(zhǔn)輸入輸出

在 C++ 中,標(biāo)準(zhǔn)輸入輸出通常使用 std::cinstd::cout 實(shí)現(xiàn)。這些對象是 C++ 標(biāo)準(zhǔn)庫 <iostream> 中的對象,用于在標(biāo)準(zhǔn)輸入和標(biāo)準(zhǔn)輸出流之間進(jìn)行輸入輸出數(shù)據(jù)交互。目前學(xué)會如何使用即可,無需追究那么多為什么,IO流操作中會介紹成員函數(shù)的使用方式,以及其他IO對象。

標(biāo)準(zhǔn)輸入輸出| 輸出到屏幕

基本輸出:cout加上 << 完成,需要掌握以下內(nèi)容

  • 支持C語言轉(zhuǎn)義字符
  • 輸出單個數(shù)據(jù)
  • 輸出多個數(shù)據(jù)
  • 換行: endl

如下測試代碼:

#include <iostream>int main() { //C++也支持轉(zhuǎn)義字符 std::cout << '字符串\n'; std::cout << 1; std::cout << 1.1f; std::cout << 1.1; std::cout << '\n'; std::cout << '字符串\n' << 1 << '\n' << 1.1 << '\n'; int a = 1; float b = 1.1f; char name[20] = { '張三' }; //輸出多個數(shù)據(jù),無需格式控制字符 std::cout << a << '\t' << b << '\t' << name << '\n'; std::cout << 'C++換行' << std::endl; //一般寫在頭文件下面 using namespace std; cout << '使用了using namespace std,無需std前綴' << endl; return 0;}

標(biāo)準(zhǔn)輸入輸出| 從鍵盤輸入

基本輸入: cin加上 >>完成,通常不需要任何格式控制字符,如下測試代碼:

#include <iostream>int main() {  int a;  float b;  char name[20] = { '' };  std::cout << '請輸入三個數(shù)據(jù):';  std::cin >> a;  std::cin >> b;  std::cin >> name;  std::cout << a << '\t' << b << '\t' << name << std::endl;  //默認(rèn)用空格或者換行作為數(shù)據(jù)間隔  std::cout << '請輸入三個數(shù)據(jù):';  std::cin >> a >> b >> name;  std::cout << a << '\t' << b << '\t' << name << std::endl;  return 0;}

C++新的基礎(chǔ)類型

C++新基礎(chǔ)類型|nullptr_t類型

nullptr_t 是 C++11 中引入的一個新的關(guān)鍵字,用于表示一個空指針常量的類型,是一種特殊的數(shù)據(jù)類型。當(dāng)需要傳遞一個空指針常量給一個函數(shù)或作為一個函數(shù)返回值時,就可以使用 nullptr_t 來明確聲明空指針常量的類型。C++空指針引入nullptr替換C語言中NULL,可以方便地編寫出更加清晰、簡潔和易于閱讀的代碼,避免出現(xiàn)空指針引用的錯誤,提高程序的可讀性和安全性。如下測試代碼:

#include <iostream>void func(std::nullptr_t ptr) { std::cout << 'coolmoying' << std::endl;}int main() { func(nullptr); //使用nullptr替換NULL int* p = nullptr; return 0;}

C++新基礎(chǔ)類型|bool類型

在 C++ 中,bool 類型表示布爾值,僅包含兩個值:truefalse。bool 類型是 C++ 的基本數(shù)據(jù)類型之一,用于存儲布爾值。C++ 的布爾類型提供了 bool 關(guān)鍵字來定義變量,bool 類型的變量可以作為條件表達(dá)式傳遞給 if 語句、while 循環(huán)等語句中,需要注意的是,C++ 中的 true 和 false 是關(guān)鍵字,不是任何標(biāo)識符的名稱。bool 類型賦值給其他類型時,false 轉(zhuǎn)換為整型值 0,true 轉(zhuǎn)換為整型值 1。其他類型的值賦值給 bool 時,非零值為 true,零值為 false。

如下測試代碼:

#include <iostream>#include <iomanip>int main() {    bool close = true;    std::cout << 'bool類輸出只有0和1:' << close << std::endl;    std::cout << '非零表示成立:' << close << std::endl;    std::cout <<std::boolalpha<< '打印true或false:' << close << std::endl;    close = -1;    return 0;}

程序運(yùn)行結(jié)果如下:

C++新基礎(chǔ)類型|不一樣const類型

C++const比C語言const的要求更嚴(yán)格。當(dāng)然const類型變量不能被修改并且創(chuàng)建的時候必須做初始化,這些依舊和C語言一樣,主要區(qū)別在于字符串操作上。如下測試代碼:

#include <iostream>void printStr(char* pstr){ std::cout << '只能傳入變量,不能傳入常量' << std::endl;}void printStrConst(const char* pstr){ std::cout << '只能傳入變量,不能傳入常量' << std::endl;}int main(){ //錯誤使用 //char* pstr='coolmoying'; //C++必須const修飾 const char* pstr = 'coolmoying'; //錯誤調(diào)用 //printStr('coolmoying'); //printStr(pstr); char str[] = { 'coolmoying' }; printStr(str); printStrConst(pstr); printStrConst(str); return 0;}

C++const比C語言更為強(qiáng)大,C++const可以修飾類中函數(shù) ,具體后續(xù)講解

C++新基礎(chǔ)類型|引用類型

左值引用

在 C++ 中,引用是一種特殊的類型,用于給一個已經(jīng)存在的變量取一個別名。引用可以簡單理解為起別名的變量,一旦引用被定義,它將一直引用同一個變量。使用引用可以在函數(shù)中方便地傳遞變量、減少內(nèi)存開銷等。基本語法:type &name = variable; 如下測試代碼:

#include <iostream>int main(){    int num = 1;    //number就是num,同一段內(nèi)存不同名字    int& number = num;    number = 123;    std::cout << num << std::endl;    std::cout << number << std::endl;    return 0;}

常引用

在 C++ 中,常量引用是一個指向常量的引用。使用常量引用可以在不復(fù)制變量的情況下訪問常量,并防止其修改。常量引用提供了一種方法來以只讀方式引用已經(jīng)存在的常量數(shù)據(jù)。這可以避免對變量的誤修改,并且在函數(shù)參數(shù)傳遞和函數(shù)返回值中使用常量引用可以減少內(nèi)存開銷。常量引用通常在函數(shù)傳參和函數(shù)返回值中使用?;菊Z法:const type &name = variable; 如下測試代碼:

#include <iostream>void print(const int& num) { std::cout << '傳普通變量或常量' << std::endl;}void printData(int& num){ std::cout << '只傳普通變量' << std::endl;}int main(){ const int num = 10; //錯誤用法 //int& number = num; const int& number = num; //錯誤代碼,常量不可修改 //number = 123; int data = 123; const int& xData = data; //const修飾的引用,不能修改 //xData = 123; //函數(shù)傳參即可傳入常量和變量 print(1); print(number); print(data); //只可傳入常量 printData(data); //錯誤調(diào)用 //printData(number); //printData(1); return 0;}

右值引用

在 C++ 中,右值引用是 C++11 新增的特性,屬于引用類型。與左值引用不同,右值引用是一個指向臨時對象(右值)的引用。右值是指無法被賦值或訪問地址的臨時對象,右值引用可以為這些臨時對象提供一個有效的引用,從而允許使用更有效的 C++ 編程技術(shù)來處理它們?;菊Z法:type &&name = variable; 如下測試代碼:

#include <iostream>void print(int&& right) {}int main(){    int&& rigthvalue = 123;     int age = 0;    //錯誤調(diào)用    //print(age);    print(123);    return 0;}

std::move函數(shù)

在 C++11 中,std::move 是一個重載函數(shù),用來支持右值引用語法的實(shí)現(xiàn)。std::move 接受一個對象,并將其轉(zhuǎn)換成右值引用類型。通過調(diào)用 std::move 函數(shù),我們可以顯式地將一個具有名稱的對象轉(zhuǎn)換為右值引用,并從該對象到達(dá)一個新的右值引用對象。這樣做的主要目的是為了可以在不拷貝數(shù)據(jù)的情況下將數(shù)據(jù)傳遞給新的對象。也就是說,std::move 可以將一個左值轉(zhuǎn)換為右值,讓程序能夠更加高效地利用資源。在開發(fā)中,std::move 主要用于資源管理、移動語義和環(huán)境的構(gòu)建。如下測試代碼:

#include <iostream>void print(int&& right) {}int main(){ int&& rigthvalue = 123; int age = 0; //錯誤調(diào)用 //print(age); print(std::move(age)); print(123); return 0;}

引用折疊

在 C++11 引入的右值引用的特性中,引用折疊是一個非常重要的概念。引用折疊指的是在特定情況下,通過遵守一些簡單的規(guī)則,可以使用兩個引用聲明名稱新的別名,并將其和現(xiàn)有的引用類型組合成一個新類型。引用折疊規(guī)則如下:

  • 當(dāng)左值引用(Lvalue reference)和左值引用組成一個新類型,結(jié)果仍然是左值引用。
  • 當(dāng)右值引用(Rvalue reference)和左值引用組成一個新類型,結(jié)果仍然是右值引用。
  • 當(dāng)右值引用和右值引用組成一個新類型,結(jié)果是右值引用。

引用折疊的一個重要的應(yīng)用場景是在使用模板時,可以統(tǒng)一地處理左值引用和右值引用。如下測試代碼:

#include <iostream>int main(){    typedef int&& Type;    int num = 0;    //等效 int& a=num;    Type& a = num;       //等效 int&& b=123;    Type&& b = 123;    return 0;}

引用折疊的規(guī)則在 C++ 模板編程中特別有用,因?yàn)槲覀兛梢詫⒁粋€泛型實(shí)參視為一個“引用”,從而同時處理左值和右值引用。例如,在泛型算法 std::move() 中使用了引用折疊的技巧,可以將一個任意類型對象轉(zhuǎn)換為右值引用,以便能夠使用右值語義來操作對象。目前簡單了解一下。

C++新基礎(chǔ)類型|自動推斷類型

在 C++11 中,引入了自動類型推斷(type inference)的特性,該特性允許編譯器在某些情況下自動推斷變量的類型,從而避免了使用顯式類型聲明和指定的麻煩和冗長。這可以讓我們更加方便快捷地定義變量和編寫代碼。C++ 中實(shí)現(xiàn)自動類型推斷主要有兩種語法:

  • auto 關(guān)鍵字:使用 auto 關(guān)鍵字來推斷變量的類型,編譯器會自動根據(jù)初始化表達(dá)式的類型推斷出變量的類型。
  • decltype 關(guān)鍵字:使用 decltype 關(guān)鍵字來推斷變量的類型,可以獲取表達(dá)式的類型(包括變量類型、函數(shù)返回值類型等)。

在使用自動類型推斷時,需要注意以下幾點(diǎn):

  • 自動類型推斷只適用于變量的定義,不能用于函數(shù)的返回類型或參數(shù)類型;
  • 在定義變量時,使用自動類型推斷可以簡化代碼,但可能會降低代碼可讀性;
  • 自動類型推斷可以降低編譯時的編譯時長,因?yàn)榫幾g器無需寫出完整的類型聲明來進(jìn)行類型檢查。

總之,自動類型推斷是 C++11 中一個重要的特性,它可以讓我們更方便地定義變量,避免了繁瑣的類型聲明,同時也可以提高代碼的可讀性和效率,并減少代碼中的出錯率。但是,在使用自動類型推斷時,我們也需要遵循一些規(guī)則,保證代碼的正確性和可讀性。如下測試代碼:

#include <iostream>struct MM { int age; char name[20];};int main(){ int num = 111; auto p1 = # decltype(&num) p2 = # MM mm = { 18,'baby' }; auto pMM = &mm; //錯誤用法 // auto必須通過初始來推斷 //auto pstr; return 0;}

C++函數(shù)思想

C++函數(shù)思想|函數(shù)內(nèi)聯(lián)

在 C++ 編程中,函數(shù)內(nèi)聯(lián)是一種編譯器對于函數(shù)的特殊處理方式。函數(shù)內(nèi)聯(lián)可以在編譯期間將函數(shù)的定義嵌入到函數(shù)調(diào)用點(diǎn)處,從而消除了函數(shù)調(diào)用的開銷,提高了程序的運(yùn)行效率。使用函數(shù)內(nèi)聯(lián)的主要好處是可以減少函數(shù)調(diào)用帶來的開銷,避免函數(shù)調(diào)用堆棧的推入和彈出,這對于一些短小精悍的函數(shù)特別有效。

C++ 中使用 inline 關(guān)鍵字來指定一個函數(shù)為內(nèi)聯(lián)函數(shù)。一般情況下,將函數(shù)定義與函數(shù)聲明放在頭文件中并使用 inline 關(guān)鍵字來修飾,可以讓編譯器自動對該函數(shù)進(jìn)行內(nèi)聯(lián)優(yōu)化。需要注意的是,在進(jìn)行內(nèi)聯(lián)優(yōu)化時,并不是所有的函數(shù)都適合進(jìn)行內(nèi)聯(lián)。如果一個函數(shù)的計算量比較大,或者參數(shù)較多,內(nèi)聯(lián)將會使代碼量變大、可維護(hù)性降低、編譯器時間增加,反而會導(dǎo)致程序效率降低。在進(jìn)行函數(shù)內(nèi)聯(lián)時,我們需要根據(jù)具體情況進(jìn)行判斷,謹(jǐn)慎地選擇需要進(jìn)行內(nèi)聯(lián)優(yōu)化的函數(shù)。如下測試代碼:

#include <iostream>inline int Max(int a, int b) {    return a > b ? a : b;}int main(){    std::cout << Max(1, 2) << std::endl;    return 0;}

C++函數(shù)思想|函數(shù)重載

在 C++ 中,函數(shù)重載(Function Overloading)是一種允許在同一作用域內(nèi)聲明多個具有相同名稱但參數(shù)不同的函數(shù)的機(jī)制。通過函數(shù)重載,我們可以用一個函數(shù)名稱實(shí)現(xiàn)多種不同的功能,這使得代碼更加靈活和易于維護(hù)。

函數(shù)重載的規(guī)則和注意事項(xiàng)如下:

  • 函數(shù)名必須相同,但函數(shù)的參數(shù)列表必須不同。參數(shù)列表的不同包括參數(shù)的個數(shù)、類型和順序。
  • 返回值類型不能作為函數(shù)重載的區(qū)分標(biāo)志,因此不能通過返回值類型的不同來區(qū)別不同的函數(shù)。
  • 靜態(tài)函數(shù)和非靜態(tài)函數(shù)之間可以進(jìn)行重載。
  • 當(dāng)實(shí)參與形參的數(shù)量或類型不匹配時,編譯器會自動查找最佳匹配的函數(shù)。如果找不到匹配的函數(shù),則編譯時將出現(xiàn)錯誤。

如下測試代碼:

#include <iostream>//數(shù)目不同void print(int a) { std::cout << 'int' << std::endl;}void print(int a, int b) { std::cout << 'int,int' << std::endl;}//類型不同void print(char a,int b){ std::cout << 'char,int' << std::endl;}//順序不同void print(int a, char b) { std::cout << 'int,char' << std::endl;}int main(){ print(1); print(1, 2); print('A', 1); print(1, 'A'); return 0;}

函數(shù)重載是一個非常有用的特性,可以優(yōu)化代碼的可讀性和效率。通過函數(shù)重載,我們可以使用同一函數(shù)名實(shí)現(xiàn)不同功能的函數(shù),而無需使用不同的函數(shù)名稱。在實(shí)際編程中,我們可以根據(jù)具體情況選擇是否使用函數(shù)重載來強(qiáng)化代碼的可重用性和擴(kuò)展性。

C++函數(shù)思想|函數(shù)缺省

在 C++ 中,函數(shù)參數(shù)的缺?。―efault Arguments)是一種在函數(shù)參數(shù)列表中為參數(shù)提供默認(rèn)值的機(jī)制。當(dāng)調(diào)用帶有缺省參數(shù)的函數(shù)時,如果沒有為該參數(shù)傳遞值,則該參數(shù)將采用默認(rèn)值。缺省必須從右往左缺省。通過使用函數(shù)缺省,我們可以簡化函數(shù)接口,避免代碼的冗余以及提高代碼的靈活性。測試代碼如下:

#include <iostream>int Sum(int a, int b = 0, int c = 0, int d=0){    return a + b + c + d;}//錯誤寫法//int Sum(int a=0, int b = 0, int c = 0, int d)//int Sum(int a, int b = 0, int c , int d=0)int main(){    //a=1,b=0,c=0,d=0    std::cout << Sum(1) << std::endl;    //a=1,b=2,c=0,d=0    std::cout << Sum(1, 2) << std::endl;    //a=1,b=2,c=3,d=0    std::cout << Sum(1, 2, 3) << std::endl;    //a=1,b=2,c=3,d=4    std::cout << Sum(1, 2, 3, 4) << std::endl;    return 0;}

函數(shù)缺省是 C++ 中重要的一個特性,它可以為參數(shù)列表中的參數(shù)提供默認(rèn)值,使得使用函數(shù)變得更加便捷、自然和安全。在實(shí)際開發(fā)中,我們可以利用函數(shù)缺省來減少代碼重復(fù)、提高代碼的可維護(hù)性以及增強(qiáng)代碼的靈活性。

相關(guān)

如果閣下正好在學(xué)習(xí)C/C++,看文章比較無聊,不妨關(guān)注下關(guān)注下小編的視頻教程,通俗易懂,深入淺出,一個視頻只講一個知識點(diǎn)。視頻不深奧,不需要鉆研,在公交、在地鐵、在廁所都可以觀看,隨時隨地漲姿勢。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
史上最全!一文讓你學(xué)完C ,干貨收藏?。?!
匿名函數(shù)Lambda認(rèn)識一下
C++ lambda的類型
C++Lambda表達(dá)式詳解
OpenFOAM|02 C++掃盲
structure
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服