» »

[c++] Virtualne funkcije

[c++] Virtualne funkcije

zhigatsey ::

Živjo,

malo sem spremenil code convention in bi rad imel v razredih "get" in "set" metode brez
predpon get in set... npr.:

class NamestoTega
{
   void setCharset(const std::string& charset);
   const std::string& getCharset() const; 
};

class BiImelTole
{
   void charset(const std::string& charset);
   const std::string& charset() const; 
};


Napaka pa se pojavi pri dedovanju... npr.:

#include <iostream>

class Base
{
    public:
        virtual void charset(const std::string& charset)
        {
            m_charset = charset;
        }

        virtual const std::string& charset() const
        {
            return m_charset;
        }

    private:
        std::string m_charset;
};

class Derived : public Base
{
    public:
       virtual void charset(const std::string& charset)
       {
           Base::charset(charset);
       }
};

int main()
{
    Derived d;
    d.charset("Bla");
    std::cout << d.charset() << std::endl;
    return 0;
}


Napaka:

/data/temp/test/main.cpp||In function 'int main()':|
/data/temp/test/main.cpp|35|error: no matching function for call to 'Derived::charset()'|
/data/temp/test/main.cpp|24|note: candidates are: virtual void Derived::charset(const std::string&)|
||=== Build finished: 1 errors, 0 warnings ===|

Ali na tak način ne gre??? V Derived classu izgleda da overridana "set" metoda "povozi" še
dedovani getter iz Base classa?

PS: Naslov teme je malo trapast ampak se nisem mogel spomniti nič boljšega

xordie ::

V bistvu se skrijejo vse funkcije razreda Base, ki so enakega imena kot tiste deklarirane v Derived.

Uporabi v derived using Base::charset za dostop do preostalih funkcij.

class Derived: public Base
{
     public:
        using Base::charset;
        virt....

};
x

zhigatsey ::

aha super bom poskusil...
Hvala


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[C#] Sort za string (slovenska abeceda)

Oddelek: Programiranje
5976 (785) mihies
»

[C++] charset-a

Oddelek: Programiranje
7912 (769) SasoS
»

prosim če mi pomagate rešiti nalogo

Oddelek: Programiranje
61310 (982) roksin
»

[C++] Pretvorba iz int v char *

Oddelek: Programiranje
232973 (2349) Gundolf
»

[C] MySQL

Oddelek: Programiranje
292826 (1848) Tutankhamun

Več podobnih tem