friend base class

dział ogólny

friend base class

Nowy postprzez Slynx » środa, 7 września 2011, 13:36

KOD cpp:     UKRYJ  
private ref class ExtLV
{
        // Cos...
};

public ref class ExtLVD : public ExtLV
{
public:
        ExtLVD(void);
};
 


Jak uczynić klasę bazową dostępną dla klasy ExtLVD ?
Chcę by nie można było stworzyć obiektu klasy ExtLV, jako, że nie zawiera "nic potrzebnego";
Aktualny kod wyrzuca błąd:

error C3213: base class 'ExtLV' is less accessible than 'ExtLVD'


("Modernizuje" klasę Extended ListView z tematu "ExtendedListView i indeksy")
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome

Re: friend base class

Nowy postprzez polymorphism » środa, 7 września 2011, 18:18

Nie wiem, czy dobrze rozumiem Twoje pytanie, ale przenieś wszystkie konstruktory klasy bazowej do sekcji protected.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: friend base class

Nowy postprzez Slynx » środa, 7 września 2011, 20:18

Nie do końca o to mi chodziło, ale w sumie tak też można. Klasa nie zawiera metod statycznych, więc wywołanie jakiejkolwiek metody nie będzie możliwe.

Chciałem żeby cała klasa była private, by nie można było z niej skorzystać, ale to rozwiązanie też jest ok. Dzięki.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome

Re: friend base class

Nowy postprzez polymorphism » środa, 7 września 2011, 20:30

No chyba że chodzi Ci o to, żeby klasa była tylko na użytek innej konkretniej klasy, wtedy po prostu zdefiniuj ją wewnątrz tej klasy.
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: friend base class

Nowy postprzez Slynx » czwartek, 8 września 2011, 12:11

W C++/CLI nie można definiować klas wewnątrz klas.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome

Re: friend base class

Nowy postprzez polymorphism » czwartek, 8 września 2011, 12:38

C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox

Re: friend base class

Nowy postprzez Slynx » czwartek, 8 września 2011, 14:51

value class. No tak, jak próbowałem umieścić to standardowo ref class i wtedy przy kompilacji rzucał błędem. Ale ok, przyda się na przyszłość.
Avatar użytkownika
Slynx
Mądrosław
Mądrosław
 
Posty: 350
Dołączył(a): piątek, 17 grudnia 2010, 21:59
Podziękował : 11
Otrzymał podziękowań: 0
System operacyjny: Windows 7 32
Kompilator: Visual C++ 2005; Visual C++ 2008; Visual C++ 2010; Visual C# 2010;
Gadu Gadu: 0
    Windows 7Chrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 5 gości