Jump to content

Archived

This topic is now archived and is closed to further replies.

zizou666

Rozmieszczenie szablonów w plikach

Recommended Posts

Otoz mam taki maly problem. Czytam sobie "Pasje C++" Grebosza i jest tam rozdzial o rozmieszczeniu szablonow klas w plikach. Otoz autor mowi, ze gdy mamy przykladowo 3 takie pliki:

//plik "szablon.h"

#include <iostream>
using namespace std;

template<class typOBJ>
class aktor
{
    typOBJ skladnik;
public:
    void funkcja_mala(char* t)
    {
        cout<<"funkcja mala: "<<t<<endl;
    }
    void funkcja_duza(char* opis);
};

template<class typOBJ>
void aktor<typOBJ>::funkcja_duza(char* opis)
{
    cout<<"funkcja duza: "<<opis<<endl;
}

//plik "modulB.cpp"

#include "szablon.h"

void poslaniec()
{
    aktor<int> objx;
    objx.funkcja_mala(" w poslancu");
    objx.funkcja_duza("w poslancu");
}

//plik "modulA.cpp"

#include <iostream>
#include "szablon.h"
void poslaniec();

main()
{
    aktor<int> obj1;

    obj1.funkcja_mala(" z main");
    obj1.funkcja_duza(" z main");
    poslaniec();

}

Chodzi o to, ze niektore kompilatory maja problem z linkowaniem tego typu plikow. Chodzi o powtarzajaca sie definicje obiektow klas. W niektorych srodowiskach podobno mozna to zmienic w opcjach. Z ciekawosci przepisalem ten program do Visuala no i nie kompiluje sie. Nie wiem jednak gdzie szukac jak zmienic aby te szablony byly juz zrecznie obslugiwane. Szczerze mowiac myslalem. ze taki program jak VS ma taka opcje ustawiona jako domyslna. Ktos wie moze jak to rozwiazac?

Konkretnie to wyrzuca taki blad:

error: "missing type specifier - int assumed. Note: C++ does not support default-int"

Link to comment
Share on other sites



  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...