Bir süre önce SO question'daki tuhaf sözdizimini gördüm.Bu sözdiziminin anlamı nedir?
class B{
A a;
public:
B() try : a() {} catch(string& s) { cout << &s << " " << s << endl; };
};
Bu try-catch-block işlevinin anlamı nedir?
Bir süre önce SO question'daki tuhaf sözdizimini gördüm.Bu sözdiziminin anlamı nedir?
class B{
A a;
public:
B() try : a() {} catch(string& s) { cout << &s << " " << s << endl; };
};
Bu try-catch-block işlevinin anlamı nedir?
Bu işlev engellemeyi deneyin. Sadece türetilmiş sınıf kuruculardaki yakalama hataları için c-torslarda kullanın. Bu özellik hakkında daha fazla bilgiyi standart olarak, örneğin n3337 taslak par. 15, 15.1.
4 bir fonksiyon deneyin blok iştirakçi bir ctor-başlatıcıyla işleyici seq, mevcut olduğu takdirde, ve bileşik tablosu. Bileşik beyanının yürütülmesi sırasında atılan bir istisnası veya yapıcıları ve yıkıcılar için, sınıflandırma veya sıfırlama sırasında, sınıfın alt nesnelerini sırasıyla imhası, bir işleyiciye aynı işlev-try-bloğu içinde aktarır. try-blok transfer kontrolü 'un çalıştırılması sırasında atılan bir istisnasının yolu diğer işleyicilere. [Örnek:
int f(int);
class C {
int i;
double d;
public:
C(int, double);
};
C::C(int ii, double id)
try : i(f(ii)), d(id) {
// constructor statements
}
catch (...) {
// handles exceptions thrown from the ctor-initializer
// and from the constructor statements
}
ucuna bağlı bir vaziyette, örneğin]
bir üye nesnesini oluştururken bir kurucu atılan durumları yakalar
. Bahsedilen sorunun cevaplarından biri, ayrıntıları açıklayan bir bağlantı içerir: http://www.gotw.ca/gotw/066.htm.
Daha ayrıntılı bir açıklama ve gerekçe için http://www.drdobbs.com/introduction-to-function-try-blocks/184401297 adresine bakın. – pmr
vay .. daha önce hiç görmedim ... Teşekkürler için teşekkürler – PermanentGuest
@PermanentGuest bu özellik nadiren kullanılır, çünkü başka bir istisna atmazsanız, catch bloğu istisnasının sonunda yeniden çizilecek. işlev-try-block istisnayı alamaz. – ForEveR