• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wywołanie w metodzie klasy nr 1 metody z klasy nr 2.

0 głosów
146 wizyt
pytanie zadane 16 czerwca 2015 w C i C++ przez tarnasm Gaduła (3,010 p.)
Witajcie.

Podpowiedzcie mi proszę w jaki sposob wywołać metode będąca voidem z klasy nr2 w klasie nr 1 ale równiez w voidzie.

Pozdrawiam.

3 odpowiedzi

0 głosów
odpowiedź 16 czerwca 2015 przez Dorion300 Szeryf (88,010 p.)
Można zaprzyjaźnić klasy albo udostępnić publicznie.
komentarz 16 czerwca 2015 przez tarnasm Gaduła (3,010 p.)

To wiem. Chodzi mi już o sam kod. Ja robie to tak:

void Klasa1::Metoda()
{
case '1': Klasa2::Metoda(); break;
}

i kompilator zgłasza błąd.

 

komentarz 16 czerwca 2015 przez Radfler Szeryf (93,960 p.)
Co? Case w środku funkcji? To Twój kod czy tylko przykład?
komentarz 16 czerwca 2015 przez tarnasm Gaduła (3,010 p.)
To mój. Switch w funkcji to zakazana opcja?
komentarz 16 czerwca 2015 przez Radfler Szeryf (93,960 p.)

Nie, nie tylko jak dla mnie to powinno wyglądać tak:

void Klasa1::Metoda() {
    switch(/*jakaś zmienna*/) {
        case '1': Klasa2::Metoda(); break;
    }
}

Sam case bez switcha nie istnieje ;)

komentarz 16 czerwca 2015 przez Dorion300 Szeryf (88,010 p.)
1. metoda musi być statyczna. W przykładzie nie ma żadnego switch'a
komentarz 16 czerwca 2015 przez tarnasm Gaduła (3,010 p.)
A to się nie zrozumielismy:D Istnienie switcha pominąłem w tym przykladowym kodzie celowo. Ale wielkie dzięki za czujność :)
0 głosów
odpowiedź 16 czerwca 2015 przez Radfler Szeryf (93,960 p.)

Metoda() w Klasa2 musi być statyczna! Jeżeli nie jest to musisz utworzyć obiekt tej klasy i wywołać tą funkcję na rzecz tego obiektu:

Klasa2 obiekt;
obiekt.Metoda();
0 głosów
odpowiedź 5 listopada 2015 przez s92 Bywalec (2,240 p.)
Sorki że odgrzewam kotleta, ale mam pytanie czy można w metodzie z Klasy2 przesłać jako argument metody obiekt Klasy1 ?
komentarz 5 listopada 2015 przez furas Maniak (54,320 p.)
Ale jakiego kodu (której linijki) to się dotyczy ?
komentarz 5 listopada 2015 przez furas Maniak (54,320 p.)
#include <iostream>
#include "klasa1.h"
#include "klasa2.h"

using namespace std;

int main()
{
    PierwszaKlasa pierwsza = PierwszaKlasa();
    DrugaKlasa druga = DrugaKlasa();

    pierwsza.Metoda(druga);

    return 0;
}

klasa1.h

#include "klasa2.h"

#ifndef KLASA1_H
#define KLASA1_H

class PierwszaKlasa
{
public:
    void Metoda(const DrugaKlasa&);
};

#endif

klasa1.cpp

#include <iostream>
#include "klasa1.h"

using namespace std;

void PierwszaKlasa::Metoda(const DrugaKlasa& klasa)
{
    cout << klasa.zmienna;
}

klasa2.h

#ifndef KLASA2_H
#define KLASA2_H

class DrugaKlasa
{
public:
    int zmienna;

    DrugaKlasa();
};

#endif

klasa2.cpp

#include "klasa2.h"

DrugaKlasa::DrugaKlasa()
{
    zmienna = 42;
}

 

komentarz 5 listopada 2015 przez s92 Bywalec (2,240 p.)

Teraz działa. Możesz mi powiedzieć po co są te:

#ifndef 

#define 

komentarz 5 listopada 2015 przez furas Maniak (54,320 p.)
W programie kilka razy muszę includować ten sam plik - jeśli nie dam tych linii preprocesora to będzie ten sam kod dodawało kilka razy i kompilator stwierdzi, że mam dwie klasy/funkcje/zmienne o takiej samej nazwię - więc jest coś nie tak.
komentarz 5 listopada 2015 przez s92 Bywalec (2,240 p.)
A Ok! Dzięki wielkie za pomoc!

Podobne pytania

0 głosów
4 odpowiedzi 74 wizyt
pytanie zadane 29 grudnia 2016 w C i C++ przez Adrian Stasiak Początkujący (410 p.)
0 głosów
1 odpowiedź 41 wizyt
pytanie zadane 26 grudnia 2016 w C i C++ przez PryPry Nowicjusz (160 p.)
0 głosów
1 odpowiedź 140 wizyt
pytanie zadane 13 listopada 2016 w C i C++ przez Evelek Nałogowiec (28,800 p.)
Obowiązuje już zaktualizowany regulamin.

Czy wiesz, że nie musisz już odświeżać strony głównej?

Lista pytań i odpowiedzi aktualizuje się automatycznie!

38,650 zapytań

76,547 odpowiedzi

149,553 komentarzy

18,068 pasjonatów

Przeglądających: 271
Pasjonatów: 33 Gości: 238

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...