天天看點

OCX編寫小記之--對象作用域智障篇。

在初接觸OCX時,最困惑的是,自己聲明一個非外部調用的變量或者方法時,有時候可以編譯通過,有時候不行。而網上關于OCX資料又不多。今天試了一下,找了下原因。

        首先情況是,我在.h的類中添加了一個屬性,然後在對應的cpp檔案中手寫了一個函數(未在.h中添加聲明,不是類函數),在這個函數中對該屬性(不是作為參數傳進來的)進行操作。然後就是編譯報錯了。而我之前在另一個OCX檔案中的手寫函數就可以直接運作(不對類屬性進行操作)。

然後就把函數的聲明添加進了.h中,編譯通過。

寫完文章,我才發覺,好像是屬性作用域的問題,類的屬性作用域應該隻在類的方法中可以改。而我聲明的屬性 并不是一個全局變量,是以不能被一個全局的函數修改。但是如果我在全局函數中 使用一個類的對象調用該對象的屬性的話,應該是可以的。智障了!