C++11 ile gelen araçlardan biri üye işlev referans niteleyicileri (member functions reference qualifiers). Sentaksa değinmeden önce amacı anlamaya çalışalım. Normal olarak bir sınıfın üye
Etiket: işlev yüklemesi
yüklenmiş işlev çözümlemesinde özel durumlar – 4 (const yüklemesi)
Aşağıdaki bildirimlere bakalım:
1 2 |
void func(int *ptr); //1 void func(const int *ptr); //2 |
Bu bir işlev yüklemesi (function overloading). Bu şekilde yapılan bir yüklemeye “const yüklemesi” (const overloading) deniyor. Her iki işlevin de
yüklenmiş işlev çözümlemesinde özel durumlar – 3
Aşağıdaki kod hakkında sorulacak bazı sorulara yanıt vermeniz isteniyor:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
class Myclass{ public: // void func(unsigned int); private: void func(int); }; int main() { Myclass m; m.func(10); } |
Birinci soru: Yukarıdaki kodda bir işlev yüklemesi (function overloading) var mı? İkinci soru : Yukarıdaki
yüklenmiş işlev çözümlemesinde özel durumlar – 2
Yüklenmiş işlev çözümlemesinde kodlayıcıların canını yakabilecek bir durum var. Aşağıdaki kodu inceleyin:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> class Myclass{ // }; void f(Myclass *p) { std::cout << "f(Myclass *)"; } void f(int) { std::cout << "f(int)"; } int main() { f(0); } |
Yukarıdaki kodda main işlevi içinde f isimli işleve yapılan çağrının Myclass *
yüklenmiş işlev çözümlemesinde özel durumlar – 1
İşlev yüklemesi C++‘ın en sık kullanılan özelliklerinden biri. Derleyicinin bir işlev çağrısı karşılığında yüklenmiş işlevlerden hangisini seçeceğine ingilizcede “function overload resolution” deniyor. Ben bu
C++ çalışma sorusu – 34
C++11 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> void display(char const *ptr) { std::cout << ptr; } void display(unsigned int uval) { std::cout << uval; } int main() { display("abc"); display(0); display('A'); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu – 25
C++11 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <iostream> typedef long long verylong; void func(unsigned verylong) { std::cout << "1"; } void foo(unsigned long long) { std::cout << "2"; } int main() { func(10ull); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu – 21
C++11 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> void func(int) { std::cout << "int"; } void func(double) { std::cout << "double"; } int main() { func(2.F); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu – 20
C++11 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> void func(int) { std::cout << "int"; } void func(float) { std::cout << "float"; } int main() { func(2.5); } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı
C++ çalışma sorusu – 13
C++11 standartlarına göre aşağıdaki C++ programı çalıştırıldığında bu programın çıktısı ne olur?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
#include <iostream> void f(int) { std::cout << "int"; } void f(long) { std::cout << "long";; } void f(double) { std::cout << "double"; } int main() { f(sizeof(int)); return 0; } |
Sorunun yanıtı şu seçeneklerden biri de olabilir: Sentaks hatası (derleme zamanı