one.h:好奇,空間和功能參數
namespace one {
class X : public IZ {
public:
void function(); // virtual function (=0) in IZ
}
}
two.h
namespace one {
class Y {
public:
void functionY(class X& x); // or one::X& x
}
}
我有幾個文件分發幾類,並共享同一個命名空間。從我所瞭解的情況來看,如果我對所有類都有相同的名稱空間,它們都可以互相訪問,而不需要放置NAMESPACE :: class_x,因爲它們都屬於同一個名稱空間。
我想知道的是爲什麼在上述特殊情況下需要在X& x
之前使用關鍵字class
或namespace::
。
它與X
遺傳的IZ
它作爲一個虛擬功能,然後「覆蓋」在X
?
你有沒有在two.h中聲明'class X'? – Cornstalks
@Cornstalks不起作用,我需要包含X類頭文件並使用類X關鍵字,否則我會得到「你需要在這個範圍內使用類標籤」。但這很奇怪,因爲其他班級不會給出這個錯誤。 – lm2s