mystruct標頭檔案 mystruct.h
class cmyclass;
struct
mystruct;
cmyclass標頭檔案
class cmyclass
;cmyclass實現 cpp檔案
...void cmyclass::myclassinit()
;memcpy(&mystr,&mystr1 ,sizeof(mystruct ));
}...後面會頻繁用用mystr變數呼叫該結構體變數裡面的函式
這樣寫法用vc6可以編譯通過,也可以執行;
還有一種寫法,如下:
mystruct標頭檔案 mystruct.h
struct
mystruct;
cmyclass標頭檔案
class cmyclass
;//引數中的void* pobj用來傳遞cmyclass物件例項的指標,以便呼叫其他的非靜態成員
cmyclass實現 cpp檔案
...void cmyclass::myclassinit()
;memcpy(&mystr,&mystr1 ,sizeof(mystruct ));
第一種寫法傳不是指向靜態函式,是指向類普通成員的函式。在使用是必須有cmyclass物件呼叫的
obj.(mystr.func)(引數): .(mystr.func)相當於指向類普通成員的函式指標,必須有物件!
而第2種寫法這樣用:cmyclass::mystr.func)(引數)
第一種方式傳遞給變數mystr的函式指標為非靜態函式,由於函式中隱含了this,所以函式能夠根據this指標區分出不同的物件。
第二種方式的為靜態函式,但是你顯示的指定了this即void *pobj,使得靜態函式仍然能夠區分出不同的類物件。
綜上這兩種方式在多個cmyclass物件情況下,不會有衝突,因為你已經通過this指標或者void *pobj指定了不同的物件。
結構體指定成員賦值
includeusing namespace std void f int main test t t.function cout t.name endl return 0 d programming c g structpointertest.cpp d programming c cl stru...
物件賦值給結構體
package main import fmt log net sync time const address localhost 502 方法的巢狀!func main tcptransporter conn closetimer lastactivity 結構體 tcpclienthandler...
C 結構體和類的成員函式
1 使用結構體成員變數 還是 的區別?一般的結構體成員變數訪問用 即可,只用結構體指標訪問結構體成員才使用 include includeusing namespace std struct books int main 2 類成員函式可以在類內部宣告和定義,也可以在類內部宣告類外部使用範圍解析運算...