Wskaźnik do obiektu przekazany do funkcji

0

Witam !
Aktualnie piszę program w którym to mam kod:
main:

function(Klasa_1 wsk)
{};
int main()
{
Klasa_1 *wsk;
wsk = new Klasa_2();
function(*wsk);
}

W jaki możliwy sposób mogę wywołać metody z Klasa_2 za pomocą wsk w funkcji function()?

Z góry dziękuję za odpowiedzi!

0

Ale zes to chaotycznie opisal. Nie wiem o co Ci chodzi.

Ale zacznijmy od tego, ze function przyjmuje wartosc typu klasa_1 a nie klasa_2.

1

Zgaduję że chodzi o operator wyłuskania -> (https://en.cppreference.com/w/cpp/language/operator_member_access#Built-in_member_access_operators).

Przykład użycia z smart pointerami:

#include <iostream>
#include <memory>

class Example {
	public:
		void foo()
		{
			std::cout << "foo()\n";
		}
};

void bar(std::unique_ptr<Example>& obj) {
	obj->foo();
}

int main() {
	auto example = std::make_unique<Example>();
	bar(example);
	return 0;
}
1
void function_a(Klasa_1 &obj)
{
    dynamic_cast<Klasa_2>(obj).call();
}

void function_b(Klasa_1 *wsk)
{
    dynamic_cast<Klasa_2*>(wsk)->call();
}

int main()
{
    Klasa_1 *wsk=new Klasa_2();
    function_a(*wsk);
    function_b(wsk);
    return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1