Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Връщане на char[] от функция?

Featured Replies

Здравейте, имам следния проблем. Дефинирал съм си клас FootballPlayer, който има get и set методи, като 2 от методите връщат низове (име на играча и страна, за която се състезава). Проблемът е, че когато извикам get метода той връща само първата буква от името. Някой би ли показал как трябва да стане, за да връща целия низ и, разбира се, обяснение защо трябва да стане по този начин. Прилагам и част от кода, за да не стане прекалено дълго:

Дефиницията на целия клас е тук:

#include <iostream>

using namespace std;

class FootballPlayer {

	public :
	   FootballPlayer(); //constructor
	   ~FootballPlayer(); //destructor
	   

	   void displayPlayer(FootballPlayer &currentPlayer);
	//accesors and setters
	   void  setName(const char name[]);
	   char  getName();
	   void  setNumberOfPlayer(const short &number);
	   short getNumberOfPlayer();
	   void  setCountryOfPlayer(const char country[]);
	   char  getCountryOfPlayer();
	   void  setNumberOfGamesForNationalTeam(const short &games);
	   short getNumberOfGamesForNationalTeam();
	   void  setNumberOfGoals(const short &goals);
	   short getNumberOfGoals(); 

	private :
	   char   mName[60];
	   short  mNumberOfPlayer;
	   char   mCoutryOfPlayer[30];
	   short  mNumberOfGamesForNationalTeam;
	   short  mNumberOfGoals;

};

Давам само декларацията на функцията, която връща името на футболиста:

char FootballPlayer::getName()
{
	return *mName;
}
  • 7 месеца по-късно...

Типа char пази точно един символ.

char mName[60];
Пази 60 символа.

Трябва да промениш функцията по следния начин за да сработи.

char* FootballPlayer::getName()
{
        return mName;
}

Прочети някоя книга за C/C++.

Препоръчвам да погледнеш и този урок: http://cpp-examples.com/c++uroci/datatypes.php

Типа char пази точно един символ.

char mName[60];
Пази 60 символа.

Трябва да промениш функцията по следния начин за да сработи.

char* FootballPlayer::getName()
{
        return mName;
}

Прочети някоя книга за C/C++.

Препоръчвам да погледнеш и този урок: http://cpp-examples....i/datatypes.php

Само да вметна че функцията връща една стойност, в този случай е указател към масива

Добавете отговор

Можете да публикувате отговор сега и да се регистрирате по-късно. Ако имате регистрация, влезте в профила си за да публикувате от него.

Гост
Публикацията ви съдържа термини, които не допускаме! Моля, редактирайте съдържанието си и премахнете подчертаните думи по-долу. Ако замените букви от думата със звездички или друго, за да заобиколите това предупреждение, профилът ви ще бъде блокиран и наказан!
Напишете отговор в тази тема...

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.