1樓:匿名使用者
extern mat point_x;這一句只是一個宣告語句,並沒有真正定義 物件 point_x。
你需要在任意一個 原始檔cpp檔案中回定義這個物件,比答如這樣: mat point_x;,去掉前面的 extern即是定義了。
標頭檔案里加宣告是正確的做法,如你的**。而定義一般是 放在原始檔裡的。原始檔才會編譯成一個個中間檔案。標頭檔案不會。標頭檔案一般就是宣告,然後可能被多個原始檔包含。
2樓:
這得具體看**,光說不好說;實在不行你在你主函式那個檔案的上面新增上extern mat point_x;這條語句
在c語言中,一個檔案中定義的 全域性變數,在另一個檔案中能用嗎?
3樓:莫道無情
全域性變數extern可以
copy在其他源程式中使用;全域性變bai量dustatic只能在本程式中使用。zhi
全域性變數是使用相同的記憶體塊在整個dao類中儲存一個值。
全域性變數既可以是某物件函式建立,也可以是在本程式任何地方建立。全域性變數是可以被本程式所有物件或函式引用。
4樓:
包含該全域性變數所在的標頭檔案,並在使用改變數的上方加入外部引用宣告: extern "變數名" 即可
5樓:time大叔vs蘿莉
定義一個static全域性變數就可以了
6樓:請不要惦記我
你說的好像不對吧,
正確的解決辦法:使用extern關鍵字來宣告變數為外部變數。具體回說就是在其中答一個c檔案中定義一個全域性變數key,然後在另一個要使用key這個變數的c檔案中使用extern關鍵字宣告一次,說明這個變數為外部變數,是在其他的c檔案中定義的全域性變數。
請注意我這裡的用詞:定義和宣告。例如在main.
c檔案中定義變數key,在common.c檔案中宣告key變數為外部變數,這樣這兩個檔案中就能共享這個變數key了。
(1)main.c檔案
#include "common.h"
unsigned char key;
(2)common.c檔案:
#include "common.h"
extern unsigned char key;
7樓:匿名使用者
能,只要預先宣告就可以了
8樓:d凌
全域性變數的有效範圍為從定義變數的位置開始到本原始檔結束。
c++的類成員函式如何訪問全域性變數?
9樓:匿名使用者
假如有個全域性變數int a,存放於myfile.h檔案中,則在類中用,需要新增#include "myfile.h"extern int a;即可
10樓:97樂於助人
一般情況下,假如沒有區域性宣告變數,就會呼叫全域性變數,
如果宣告瞭區域性變數,則,區域性變數會遮蔽全域性變數。
除非你指定呼叫全域性變數,加上作用域操作符::
11樓:匿名使用者
之所以叫全域性變數就是因為他在整個程式中都是可見的!就是在整個程式中的所有函式中都是可以直接使用的!
12樓:匿名使用者
可以直接使用。不需要進行別的設定。當然若內部有重名,那需要使用域標示。
c 中如果定義了帶引數的建構函式,那麼在定義物件時,必須初始化嗎
是這樣的。你定義了建構函式,系統就不會用預設的建構函式了。中你定義了自己的帶參建構函式,所以系統的預設建構函式就在編譯時,不會生成了。這個就需要自己定義了。否則的話,date a 這樣使用的時候就會報錯。定義物件的時候它會呼叫相應的建構函式初始化自己。如果沒有引數就呼叫不帶引數的建構函式。如果一個類...
在主函式中定義一維陣列double array10,讀入陣列
include using namespace std void hhh int array 10 void main hhh a for i 0 i 10 i cout include用法 include命令預du處理zhi命令的dao一種,預處 理命令可以將別的源 內容插 專入到屬所指定的位置 ...
c語言後定義函式前面在函式原型中為什麼要加
傳遞引數為陣列或者指標。形參都是以指標形式表示。你的例,第一個引數的實參為int型,第二個的實參可以是int陣列名 第一元素地址 int型指標 指標的值就是地址 int值的地址 x int 是一個型別 就好比如char也是一個型別。double也是一個型別。int型別 int 型別這是兩個型別 加 ...