forward-declaration

    1熱度

    2回答

    雖然我一直在使用前聲明相當長的時間,但從來沒去考慮它嚴重(我的錯) 將是有益的,如果有人可以給我指針或任何鏈接對於以下查詢: 我們如何確定,如果我們需要向前聲明或包括需要? 編譯器在這種情況下如何實際工作?任何開銷? 假設我有兩個相互依賴的類A和B.兩者都使用對象的對象,我是否需要在兩個類中轉發聲明。

    12熱度

    2回答

    我在某些我認爲很簡單的事情上遇到了一個非常奇怪的錯誤。 #import <Foundation/Foundation.h> #import "ViewController.h" #import "GameObject.h" @interface GameController : NSObject @property (strong) GLKBaseEffect * effect;

    2熱度

    1回答

    我有一個名爲Caching.h的類。的代碼的下面3行下面給出 #import <Foundation/Foundation.h> @class ODataEntry; @class ODataFeed; 我得到的錯誤「意外令牌Objective-C的串之後在行 @class ODataEntry 我已經添加了ODataEntry.h文件添加到項目的標題搜索路徑中還有其他必須爲@Cla

    0熱度

    1回答

    Pimpl是「指向實現指針」的簡稱,並提供了一種方便的方式來隱藏類中的實現。我實現一個窗口類,它隱藏從這個類的用戶特定於平臺的功能和結構,因此類接口最終看起來挺乾淨的: class Window{ public: /// Constructors & destructors: Window(void); Window(Window const& window_);

    24熱度

    1回答

    我想我知道C語法相當不錯,直到我試圖編譯下面的代碼: void f(int i; double x) { } 我預計編譯器跳閘,它做了,但是我沒有得到錯誤信息: test.c:1:14: error: parameter ‘i’ has just a forward declaration 我又試圖 void fun(int i; i) { } 其失敗 test.c:1:17:

    13熱度

    2回答

    之間的關係,我有以下代碼: #include <iostream> using namespace std; class CForward; void func(CForward* frw) { delete frw; } class CForward { public: ~CForward() { cout << "Forward" << endl; } };

    3熱度

    2回答

    我想通過函數中的struct指針。我在file1.h中有一個typedef,並且只想將這個頭文件包含到file2.c中,因爲file2.h只需要指針。在C++中,我會像我這樣寫,但使用C99它不起作用。如果有人有任何建議如何通過struct沒有完整定義的指針,將不勝感激。編譯器 - gcc。 file1.h typedef struct { ... } NEW_STRUCT; fil

    1熱度

    1回答

    我一直想知道如何在一段時間內聲明boost::multi_index_container。 在multi_index目錄中有multi_index_container_fwd.hpp,ordered_index_fwd.hpp等。 它們應該隱藏在程序中不需要知道對象的細節的部分的實現,對嗎? 但是,我找不出一種方法來聲明multi_index_container這些* _fwd.hpp文件。 我一

    0熱度

    1回答

    我使用向前聲明,但仍然得到錯誤:'鏈接'沒有命名一個類型。爲什麼? struct link; struct node { link *head_link; <------- this is the error location node *next_node; }; struct link { link *next_link; node *

    4熱度

    2回答

    我得到這個編譯器錯誤 error: 'RawLog' does not name a type 下面是相關代碼: //DataAudit.h #ifndef DATAAUDIT_H #define DATAAUDIT_H class RawLog; class DataAudit { ... private: RawLog* _createNewRawLog();