Struktury a objekty – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Struktury a objekty – C / C++ – Fórum – Programujte.comStruktury a objekty – C / C++ – Fórum – Programujte.com

 

Bobek6
~ Anonymní uživatel
9 příspěvků
10. 1. 2012   #1
-
0
-

Dobrý den, chtěl sem se zeptat, jak se dá pracovat (ajak) s jednou strukturou, vytvořenou v nejake tride i v dalsich tridach.Napriklad v tride A ji vytvorim a naplnim datama a v tride B bych v ni chtel menit obsah.Dekuju za odpoved

Ukazka tridy:

class A
{


public:
MainWindow();
~MainWindow();

void createWindow();

struct ItemNew{
inline ItemNew()
:newIndex(0) {}

String name[500];
String supplier[500];
qint16 total[500];

};
ItemNew itemNew_;

Nahlásit jako SPAM
IP: 86.61.211.–
ondra.holub+1
Stálý člen
10. 1. 2012   #2
-
0
-

Předáš si ukazatel na tu třídu nebo referenci na tu třídu do nějaké funkce nebo metody. Tam změníš, co potřebuješ. Např.:

#include <iostream>

class A
{
public:
  A() { }
  void M() { std::cout << "Zavolano A::M()\n"; }
};

class B
{
public:
  void PouzijA(A& a)
  {
    a.M();
  }
};

int main()
{
  A a;
  B b;

  b.PouzijA(a);
}
Nahlásit jako SPAM
IP: 194.138.12.–
Bobek6
~ Anonymní uživatel
9 příspěvků
10. 1. 2012   #3
-
0
-

#2 ondra.holub
Dekuju za odpoved, ale stejne sem  se nedobral k reseni. Jde o to ze sem asi jeste mel uvest, ze strukturu potrebuju upravoat v jinem objektu.

Mam object MainWindow s deklarovanou tridou StoreItem. Ted bych potreboval s touto strukturou pracovat v objektu Store. V headeru teto tridy jsem udelal dopourecene rady.

#include "mainwindow.hpp"

class Store
{
public:
    Store();
    ~Store();
   
    void table(MainWindow::StoreItem &newItem);

}

Ovsem to nefunguje. Jeste muze byt problem v tom ze v objectu MainWindow mam pointer na object Store *store(); kvuli grafckemu zobrazeni. Sumasumarum: Z MainWindow potrebuju zobrazovat object Store a zaroven ve Storu potrebuji pracovat se strukturou deklarovanou v MainWindow. Je to koplikovanz snad se v tom vyznate

Nahlásit jako SPAM
IP: 86.61.211.–
liborb
~ Redaktor
+18
Guru
10. 1. 2012   #4
-
0
-

Pokud máš strukturu, se kterou pracuješ na dvou místech, tak bych šel do definování struktury v extra hlavičkovém souboru. Nebo je nějaký zásadní důvod ji mít definovanou v MainWindow?

Nahlásit jako SPAM
IP: 78.80.52.–
Bobek6
~ Anonymní uživatel
9 příspěvků
10. 1. 2012   #5
-
0
-

#4 liborb
Je pravda ze neni zadny duvod ... to by bylo asi reseni.

Nahlásit jako SPAM
IP: 86.61.211.–
ondra.holub+1
Stálý člen
10. 1. 2012   #6
-
0
-

#3 Bobek6

#include <iostream>

class A
{
public:
    A() { }

    class C
    {
    public:
        void M() { std::cout << "Called A::C::M()\n"; }
    };

};

class B
{
public:
    void PouzijAC(A::C& c) {
        c.M();
    }
};

int main()
{
    A::C c;
    B b;

    b.PouzijAC(c);
}

Ani toto nefunguje?

Nahlásit jako SPAM
IP: 194.138.12.–
Bobek6
~ Anonymní uživatel
9 příspěvků
10. 1. 2012   #7
-
0
-

#6 ondra.holub
Ano toto funguje :) Diky vsem za rady

Nahlásit jako SPAM
IP: 86.61.211.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 68 hostů

Podobná vlákna

Objekty — založil Onsi

Objekty — založil zmetek

Objekty — založil allicce

Objekty — založil Miro1701

Indexované objekty — založil Wabbit

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý