Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[c++] Błąd tworzenia obiektu w klasie


Sodema

Rekomendowane odpowiedzi

Opublikowano
#pragma once
class cryptorClass
{
public:
    int key[4] = { 5, 6, 7, 1 };
    int encryptChar(char *str);
    void decryptChar(char *str);
};

 

errory : http://scr.hu/0agc/suqn5

5 linijka to : int key[4] ... Dzięki za pomoc ;)

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Opublikowano

 

#pragma once
class cryptorClass
{
public:
    static int key[4] = { 5, 6, 7, 1 };
    int encryptChar(char *str);
    void decryptChar(char *str);
};

 

 

Nie można inicjować zmiennej statycznej in situ. Musisz to zrobić poza zasięgiem klasy.

 

class cryptorClass
{
public:
    static int key[4];
    int encryptChar(char *str);
    void decryptChar(char *str);
};

int cryptorClass::key[4] = { 5, 6, 7, 1 };

 

I jeszcze jedna istotna sprawa: ta tablica powinna być statyczna wtedy, kiedy autor chce, żeby była tylko jedna taka na wszystkie obiekty.


Pomagam w projektach dotyczących programowania (C++/C/Java/C#/inne). Jak masz jakiś problem, napisz do mnie, wspólnie poszukamy rozwiązania ;).

Opublikowano

cryptorClass::key[4] = {5,6,7,1};

too many initializer values

#pragma once
class cryptorClass
{
public:
	static int key[4];
	int encryptChar(char *str);
	void decryptChar(char *str);
	cryptorClass();
};


Lajki zaraz Wam dam ;)

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Opublikowano

Bo tak można TYLKO przy deklaracji. Później jest to uważane za dereferencję 4 elemenu (licząc od zera oczywiście).

To nie koniecznie musi być zmienna statyczna, zależy co potrzebujesz. Musisz albo dać znać kompilatorowi, że chcesz podążać za standardem c++11, albo ręcznie robić to w konstruktorze z każdym elementem osobno.

Weteran
Opublikowano

cryptorClass::key[4] = {5,6,7,1};

too many initializer values

powinno być:

class cryptorClass
{
public:
    static int key[4];
    int encryptChar(char *str);
    void decryptChar(char *str);
    cryptorClass();
};
int cryptorClass::key[4] = {5,6,7,1};

Ale jeśli nie chcesz pola static, to zrób to tak, jak napisałem ci w moim poprzednim poście.

Opublikowano

up@

Twoje prawie zadziałało ... http://scr.hu/0agc/qmkow
cryptorClass.cpp :

#include "cryptorClass.h"

int cryptorClass::key[4] = {1,2,3,4};

cryptorClass.h:

#pragma once
class cryptorClass
{
public:
	static int key[4];
	int encryptChar(char *str);
	void decryptChar(char *str);
	cryptorClass();
};


main.cpp

#include <iostream>
#include "cryptorClass.h"
int main(){
	cryptorClass Cryptor;
	system("PAUSE");
}

Przyjmuje zlecenia dot. web masterki.

while(!$success){
....try();
}

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...