23 Kasım 2012, Cuma
Neden özel bir türü otomatik kullanabilir miyim?
Aşağıdaki kodu derler ve (vc2012 & gcc4.çalışan bir şekilde şaşırdım 7.2)
class Foo {
struct Bar { int i; };
public:
Bar Baz() { return Bar(); }
};
int main() {
Foo f;
// Foo::Bar b = f.Baz(); // error
auto b = f.Baz(); // ok
std::cout << b.i;
}
Bu kod iyi derler doğru mu? Ve neden doğru mu? Neden onun adı (beklendiği gibi) kullanamıyorum sırasında özel bir türü üzerinde auto
kullanabilir miyim?
CEVAP
23 Kasım 2012, Cuma
Erişim kontrolü için uygulanırisimler. Standart: bu örnek, karşılaştırın
class A {
class B { };
public:
typedef B BB;
};
void f() {
A::BB x; // OK, typedef name A::BB is public
A::B y; // access error, A::B is private
}
Bunu Paylaş:
nasıl özel biçim otomatik tamamlama ek...
Neden döngü için bir Python yineleyici...
Neden nesne türü dinamik bir null başv...
Neden kopya yapıcı özel değişkenleri e...
Nasıl özel bir Yazı karakteri ile Type...