Konstruktor sparametryzowany w C++: działanie i przykłady
Opublikowany: 2021-05-27Spis treści
Co to jest Konstruktor?
Konstruktor to funkcja składowa klasy, która służy do inicjowania obiektów w klasie. W C++ , gdy tworzony jest obiekt będący instancją klasy, konstruktor jest wywoływany automatycznie. Konstruktor jest więc specjalną funkcją składową klasy.
Co to jest konstruktor sparametryzowany?
Argumenty można przekazać do konstruktorów. Gdy obiekt jest tworzony, te argumenty pomagają zainicjować obiekt. Aby utworzyć sparametryzowany konstruktor w C++ , możemy dodać parametry do funkcji, tak jak można ją dodać do dowolnej innej funkcji. Gdy ciało konstruktora jest zdefiniowane, parametry są używane do inicjalizacji obiektu.
Składnia konstruktora parametrycznego w C++
nazwa_klasy_klasy{
Specyfikator dostępu (publiczny/chroniony/prywatny):
Zmienne składowe
Funkcje członkowskie
publiczny:
nazwa_klasy(zmienne){ //Kod konstruktora
}
// inne funkcje i zmienne
}
Składnia zawierała nazwę_klasy, po której następuje specyfikator dostępu, który zawiera funkcje składowe i zmienne składowe. Wszystko to jest zawarte w kodzie konstruktora, co oznacza, że można go wywołać w ciele konstruktora.
Przeczytaj także: Projekty Open Source dla C++
Przykład sparametryzowanego konstruktora w C++
#włącz <iostream>
używając standardowej przestrzeni nazw;
klasa Przykład
{
prywatny:
wta, b;
publiczny:
// Sparametryzowany Konstruktor
Przykład(int a1, int b1)
{
a = a1;
b = b1;
}
int pobierzA()
{
zwróć;
}
int pobierzB()
{
powrót b;
}
};
int main()
{
// Wywołanie konstruktora
Przykład e1(5, 10);
cout << “e1.a = ” << e1.getA() << “, e1.b = ” << e1.getB();
zwróć 0;
}
Wyjście
Wyjaśnienie: Zmienne prywatne aib są zadeklarowane w klasie Przykład. Konstruktor sparametryzowany jest deklarowany za pomocą funkcji Przykład. Zawiera dwie metody getA() i getB(). W klasie głównej wywoływany jest konstruktor i przypisywane są wartości dostępu konstruktora.
Jak działa konstruktor sparametryzowany w C++?
Inicjowany jest obiekt, który przechowuje wartości lub szczegóły i parametry, które obiekt będzie przetwarzał lub zawierał za każdym razem, gdy zdefiniowany jest sparametryzowany konstruktor w języku C++ . Wtedy staje się możliwe przekazanie argumentów do tego obiektu. Procedura jest bardzo podobna do przekazywania wartości do funkcji. Posiada również podobieństwo do przekazywania sparametryzowanych wartości do obiektów.
Obiekty zdefiniowane w ciele konstruktora są inicjowane za pomocą parametrów. Wartości powinny być przekazywane jako argumenty do funkcji konstruktora za każdym razem, gdy deklarowany jest sparametryzowany konstruktor. Konstruktory te można wywoływać zarówno jawnie, jak i niejawnie. Konwencjonalny sposób deklaracji obiektu nie działa.
Uwaga: Rodzaje połączeń-
- Wyraźne połączenie — przykład e1= Przykład (0,10)
- Wywołanie niejawne — przykład e1(0,10)
Zamówienie: Pomysły na projekty w C++ dla początkujących
Jaki jest użycie konstruktora sparametryzowanego w C++?
Zastosowania sparametryzowanych konstruktorów są następujące:
- Przeciążenie konstruktora
- Służy do przypisywania różnych wartości do różnych elementów danych różnych obiektów podczas ich inicjalizacji/tworzenia
Inny przykład:
1. Program do obliczania pola prostokąta
#włącz <iostream>
używając standardowej przestrzeni nazw;
// deklarowanie klasy
prostokąt klasy {
prywatny:
podwójna długość;
podwójna szerokość;
publiczny:
// tworzenie sparametryzowanego konstruktora
prostokąt(podwójny len, podwójny brt) {
// zainicjuj prywatne zmienne
długość = len;
szerokość = brt;
}
podwójne obliczenieObszar() {
powrót długość * szerokość;
}
};
int main() {
// tworzenie obiektów i inicjowanie składowych danych
prostokąt rect1(10, 8.6);
prostokąt rect2(8.5, 6);
cout << “Powierzchnia prostokąta 1: ” << rect1.calculateArea() << endl;
cout << “Powierzchnia prostokąta 2: ” << rect2.calculateArea() << endl;
zwróć 0;
}
Wyjście
Objaśnienie: W tym przykładzie utworzyliśmy sparametryzowany konstruktor rectangle() z dwoma parametrami: double len i double bdt. Te parametry zawierają wartości, które są używane do inicjowania zmiennych składowych length i width. Kiedy tworzymy obiekt klasy Rectangle, jako argumenty przekazujemy wartości zmiennych składowych. Możemy obliczyć obszar za pomocą funkcji obliczaniaArea(), gdy zmienne składowe są inicjowane.
1. Wyświetlanie ocen uczniów
#włącz <iostream>
używając standardowej przestrzeni nazw;
klasa uczeń {
publiczny:
int std_id;//członek danych
ciąg std_name;//również zmienna instancji
zmiennoprzecinkowe std_marks;
Student(int i, string a, float b)
{
std_id = ja;
std_name = a;
std_marks = b;
}
nieważne wyświetlanie()
{
cout<<std_id<<” „<<std_name:<<” „<<std_marks <<endl;
}
};
int główny(unieważniony) {
Student s1 =Student(101, „Soniya”, 89); //tworzenie przedmiotu ucznia
Student s2=Student(102, “Nakul”, 59);
s1.wyświetlacz();
s2.display(); zwróć 0;
}
Wyjście
Objaśnienie: id, name i marks są elementami danych (także zmiennymi instancji). Student to sparametryzowany konstruktor, a jego obiekty tworzone są w klasie głównej.
Ucz się kursów rozwoju oprogramowania online z najlepszych uniwersytetów na świecie. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Wniosek
Konstruktory to po prostu specjalne rodzaje metod, w których możemy przekazywać wartości. Jeśli nie przekazujemy wartości do konstruktora, to obiekt końcowy ma jakąś wartość domyślną. [1] [MOU2] Obiekty przechowują metody i wartości zmiennych składowych, które są częścią głównej klasy. Te wartości są ostatecznie przekazywane przez konstruktory. Konstruktor sparametryzowany w C++ ma tę zaletę, że przypisuje różnym obiektom różne wartości i może wystąpić przeciążenie.
Teraz, gdy znasz już sparametryzowane konstruktory w C++, jeśli chcesz zagłębić się w swoją karierę programistyczną, skorzystaj z kursów upGrad, największej indyjskiej firmy zajmującej się szkolnictwem wyższym online. Musisz sprawdzić nasz program rozwoju pełnego stosu oprogramowania .
Kim jest konstruktor?
Konstruktor to specjalna metoda w klasie, która ma taką samą nazwę jak klasa. Jest to szczególne, ponieważ ta metoda jest wywoływana automatycznie, gdy tworzona jest klasa (instancja). Jeśli konstruktor nie ma argumentów, instancja klasy jest tworzona z pustymi wartościami. Konstruktor wykonuje zadania inicjowania i inicjuje zmienne instancji klasy. Głównym celem konstruktora jest ustalenie wartości właściwości obiektu. Służy również do wykonywania dowolnej operacji, którą należy wykonać tylko raz. Konstruktor jest zwykle deklarowany jako publiczny statyczny w klasie, a obiekt jest tworzony za pomocą tego konstruktora.
Ilu konstruktorów może być w klasie?
Jeśli mówimy o C++, to liczba konstruktorów jest nieograniczona. Jednak mogą istnieć inne ograniczenia z innych powodów, takich jak ograniczenie pamięci twojego komputera, złożoność klasy itp. Dlatego liczba konstruktorów jest nieograniczona, ale liczba parametrów konstruktorów nie. W klasie może być tyle konstruktorów, ile chcesz. Ale domyślny konstruktor jest koniecznością. Każda klasa, która nie ma domyślnego konstruktora, jest klasą abstrakcyjną. Nie można utworzyć instancji klasy abstrakcyjnej.
Co to jest programowanie obiektowe?
Programowanie obiektowe to paradygmat programowania, który traktuje „obiekty” jako podstawowe elementy składowe programu lub systemu komputerowego. Obiekty to jednostki oprogramowania, które mogą zawierać dane w postaci pól, często znanych jako atrybuty; i kod w postaci procedur, często nazywanych metodami. Programowanie obiektowe koncentruje się na danych i otaczających je regułach, zamiast skupiać się na logice proceduralnej lub przepływie kontroli, jak to było powszechne we wczesnych językach programowania. OOP zajmuje się danymi jako całością, a nie zbiorem pojedynczych elementów.