2017-06-20 46 views
1

我遇到了一個簡單的概念,這個概念來自我以前使用C的經驗以及它如何轉換爲C++。在C中,您會看到一個頭文件,其中包含幾個可用於整個代碼庫的結構類型定義。然後我看到類似於下一個C++類的使用:使用C++類定義多個數據結構

//varTypes.h 
class varTypes 
{ 
    public: 
    struct TypeOne {int a; int b;}; 
    struct TypeTwo {int c; int d;}; 
} 

//varTypes.cpp 
include "varTypes.h" 

varTypes::TypeOne x {1, 1}; 
varTypes::TypeTwo y {1, 2}; 
varTypes::TypeTwo z {2, 4}; 

在這種情況下,類似乎僅用於包含可根據需要單獨使用的定義。這是真的?或者,類和兩個定義總是作爲它們使用的每個實例的成員一起存在,即,x,y和z最終會作爲整個varType類實例還是作爲它們各自的結構?

參考

//varTypes.h 
struct TypeOne {int a; int b;}; 
struct TypeTwo {int c; int d;}; 

//varTypes.c 
include "varTypes.h" 

varTypes::TypeOne x {1, 1}; 
varTypes::TypeTwo y {1, 2}; 
varTypes::TypeTwo z {2, 4}; 
+4

你可以顯示你曾經在C中使用過嗎?這個類所做的就像一個名稱空間(它將嵌套類的名稱限定在外部類中)。 – NathanOliver

+1

如果你仔細看看它,這個類沒有成員變量。一個varTypes對象不包含任何內容。就像@NathanOliver說的那樣,它只是一個名字空間。 –

+0

@NathanOliver,Dave S,謝謝,這就是簡單的答案。沒有成員變量的類用作名稱空間。出於某種原因,這是逃避我。我將添加C代碼以供參考。 –

回答

0

一類以沒有成員變量用作命名空間簡單的C代碼。