Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dz_ViTo
14 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 51
#1

Проблема с методом класса(наверное) - C++

26.07.2011, 21:30. Просмотров 340. Ответов 4
Метки нет (Все метки)

Есть вот такой пример:
C++
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
#include <iostream>
using namespace std;
 
class One{
  int iclOne;
  float fclOne;
  char* chclOne;
  public:
    One(): iclOne(0), fclOne(0), chclOne(NULL){} 
    int getiOParam(){return iclOne;}
    float getfOParam(){return fclOne;}
    char* getchOParam(){return chclOne;}
    int givOParam(int Var, float Far, char* Char);
    void Show();
};
int One::givOParam(int Var, float Far, char* Char){
  iclOne = Var;
  fclOne = Far;
  chclOne = new char[strlen(Char)+1];
  strcpy(chclOne, Char);
}
void One::Show(){
  cout<< "Enter \n"<<iclOne<< " "<< fclOne<< " "<< chclOne<< endl;
}
 
//===Главная ф-я===
int main(){
  One A;
  A.Show();
  A.givOParam(2, 3.4, "Hello world!");
  A.Show();
  return 1;
}
Суть в том что работает прога до A.givOParam(2, 3.4, "Hello world!") а потом попросту слетает. В чем дело?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2011, 21:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Проблема с методом класса(наверное) (C++):

Вызов метода внутреннего класса методом внешнего класса - C++
Не могу разобраться как реализовать вложенный класс и как его вызвать. Занимаюсь по Лафоре, про вложенные классы ничего, а задача в конце...

Проблема наследования от шаблонного класса. - C++
Привет всем! У меня есть шаблонный класс, и наследуемый от него шаблонный класс. Базовый: #include &quot;Lgraph.h&quot; #include...

Проблема с созданием экземпляра класса - C++
Добрый день! Есть файл &quot;File.cpp&quot;, в нём находится точка входа и класс &quot;Helper&quot;. Пытаюсь создать инстанс класса Helper: ...

Проблема со считыванием строк из класса. - C++
Всем привет.На ютубе узрел ролик... using namespace std; int main() { ifstream f(&quot;C:\Documents and...

проблема с методом double to string - C++
Приветствую! Возникла проблема с преобразованием long double в string. Если понадобится я выложу весь код. void convStr(long double...

Очередь С++ Проблема с удалением элементов класса очереди - C++
Разбираюсь с очередью. Не могу понять, где совершил ошибку: при компиляции компилятор ругается на необработанное исключение при удалении...

4
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.07.2011, 22:04 #2
функция givOParam должна целочисленное значение, а вы не возвращаете ничего
0
Dz_ViTo
14 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 51
26.07.2011, 22:16  [ТС] #3
к сожалению это не решило проблемы =(
0
Jupiter
Каратель
Эксперт С++
6559 / 3980 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
26.07.2011, 22:43 #4
все дело в том что вы пытаетесь вывести на экран нуленный указатель, тоесть программа вылетала при первом вызове Show
C++
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
53
54
55
56
#include <iostream>
#include <cstring>
 
using namespace std;
 
class One {
    int iclOne;
    float fclOne;
    char* chclOne;
public:
    One() : iclOne(0), fclOne(0), chclOne(0) 
    {} 
 
    ~One()
    {
        delete [] chclOne;
    }
    
    int getiOParam()
    {
        return iclOne;
    }
    
    float getfOParam()
    {
        return fclOne;
    }
 
    const char const* getchOParam()
    {
        return chclOne;
    }
    
    void givOParam(int Var, float Far, const char* Char);
   
    void Show()
    {
        cout<< "Enter \n"<< iclOne << ' ' << fclOne<< ' ' << chclOne << endl;
    }
};
 void One::givOParam(int Var, float Far, const char* Char)
{
    iclOne = Var;
    fclOne = Far;
    chclOne = new char[strlen(Char)+1]();
    strcpy(chclOne, Char);
}
 
int main()
{
    One A;
   
    A.givOParam(2, 3.4f, "Hello world!");
    A.Show();
    return 0;
}
1
Dz_ViTo
14 / 0 / 0
Регистрация: 14.07.2011
Сообщений: 51
26.07.2011, 22:49  [ТС] #5
Точно =)
спасибо
0
26.07.2011, 22:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.07.2011, 22:49
Привет! Вот еще темы с ответами:

Проблема с методом OnOk для диалогового окна - C++
Привет всем. Метод OnOk для диалогового окна свой радной. Я использовала OK для вызыва другого диалогового окна который содержит кнопки...

Получение доступа к закрытым методом класса - C++
Как получить доступ к закрытому конструктору и деструктору?

Выход из цикла методом size() класса string - C++
Подскажите пожалуйста, как происходит выход из цикла в следующем коде? После того как все 'g' заменятся на '7', переменная x должна...

Удаление переменных в куче, созданных статическим методом класса - C++
Добрый вечер форумчане. При изучении паттернов проектирования наткнулся на следующий код: #include &lt;iostream&gt; #include &lt;assert.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru