Base sınıfında saf bir sanal işlev yazmaya çalıştım ve bir tanımını kodunun içinde gösterildiği gibi kodun içinde gösterildiği gibi bir derleme hatası almam gerektiğini biliyorum, ama her şey iyi çalıştı. C++ 17 ile gelen yeni bir şey mi?C++ 17'de saf sanal işlev için gövde?
class Base {
public:
virtual void virtual_func() { std::cout << "This a virtual function from BASE" << std::endl; };
virtual void pure_func() = 0 { std::cout << "This a PURE virtual function from BASE" << std::endl; };
};
Teşekkür
saf sanal bir tanım ile birlikte kullanılamaz
var "Ben bir derleme hatası alıyorum gerektiğini biliyorum" - neden? Saf sanal işlevleri uygulamak için tamamen yasal. –
Standart buna izin vermez, ancak VS (veya daha doğrusu, Microsoft'un derleyicisi) yapar. Uygun olmak için, tanımı açıklamadan ayırmanız gerekir. –
@Neil Butterworth Ben öyle düşünmüyorum. C++ 14'te derleyemez. http://ideone.com/EISKsp – javaLover