Pokaż wyniki 1 do 2 z 2

Temat: problem z akcesorem do zmiennej klasy

  1. #1
    Zarejestrowany
    Jan 2009
    Postów
    1

    Domyślnie problem z akcesorem do zmiennej klasy

    Dwa takie same błędy kompilacji
    illegal reference to non-static member 'cFile::filesize'
    w momencie kompilowania każdej z tych dwóch linijek:
    Kod:
    { return cFile::filesize; }
    oraz
    Kod:
    { cFile::filesize = new_filesize; }
    Zdaje mi się, że problem jest w tym, iż nie tworzę obiektu przy pomocy new. Nie wiem, jak sobie poradzić z tym błędem. Próbowałem przy pomocy this, ale coś mi to nie wychodzi.
    Pozdrawiam!

    cFile.h

    Kod:
    #ifndef CFILE_H
    #define CFILE_H
    
    #include <string>
    
    class cFile
    {
    public:
    	cFile(std::string filename);
    	//accessor to filename
    	std::string show_filename();
    	long int show_filesize();
    	void changes_filesize(long int new_filesize);
    private:
    	std::string filename;
    	long int filesize;
    	/*
    	cFile *current_file; //I need to know current file to use accessors
    	                     //I initialize its value in the destructor
        */
    };
    
    #endif
    cFile.cpp

    Kod:
    #include "stdafx.h"
    /*#include "cFile.h"
    #include <string>*/
    
    /**
     * default constructor with use of initialization list
     * creates new file of a given name
     */
    cFile::cFile(std::string filename) : filename(filename)
    { //current_file = this;
    }
    
    std::string cFile::show_filename() {return filename;} //or cFile::filename (?)
    
    long int show_filesize()
    { return cFile::filesize; }
    
    void changes_filesize(long int new_filesize)
    { cFile::filesize = new_filesize; }

  2. #2
    Zarejestrowany
    Jan 2009
    Postów
    19

    Domyślnie

    Dlaczego nie dopisałeś do tego czegoś: { cFile::filesize = new_filesize; } tak jak jest w poprzedniej linijce twojego kodu. Musisz do tego przypisać jakąś wartość ponieważ składnia kodu powinna wyglądać w ten sposób (posłuże się na twoim przykładzie:
    [code]std::string cFile::show_filename() {return filename;}[code]
    Dlatego też musisz przypisać do tego programu i tak w każdej klasie itd.
    btw. uczyłem się tego z kursu.
    Może jestem balasem może jestem pedałem ale jedno jest pewne: Nigdy nie lamie

Podobne wątki

  1. link z naszej klasy - problem
    By profix in forum HTML/DHTML/XHTML
    Odpowiedzi: 2
    Autor: 12-30-2008, 11:17
  2. Systemy klasy 'Enterprise' - WTF?
    By TQM in forum Inne języki
    Odpowiedzi: 0
    Autor: 05-27-2008, 22:27
  3. [php] wysylanie zmiennej mailem
    By GSG-9 in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 2
    Autor: 05-22-2008, 11:48
  4. klasy sieci...czegos tu nie rozumiem + osi and tcp/ip
    By ironwall in forum TCP/IP/Analiza/Badanie
    Odpowiedzi: 3
    Autor: 11-23-2007, 22:11
  5. Zapisywanie danych do zmiennej
    By andrew8666 in forum C/C++
    Odpowiedzi: 2
    Autor: 08-01-2007, 21:56

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52