Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Ошибка вызова ф-и, компилятор ошибок не выдает!

-

Вопросы и ответы, обсуждения

- Ваши вопросы по C/C++ только в данном разделе

Ответ
 
Опции темы
Старый 04.02.2013, 20:32   #1
 Разведчик
Аватар для Mr.Active
 
Mr.Active никому не известный тип
Регистрация: 03.02.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
Post Ошибка вызова ф-и, компилятор ошибок не выдает!

Уважаемые форумчане! Взываю к сильным к программирования на С++ .
Вообщем после прочтения 3 глав самоучителя по С++, решил написать консольную программу защищенную паролем и с несколькими вариантами выполнения программы. Так вот написал И появилась проблема ( компилятор не выдает сообщение о найденыйх ошибках ) и норм срабатывает линковшик.
НО при успешном выполнении условия в ф-и main луп срабатывает, что подтверждает вывод сообщеня о правильности ввода пароля, но не выполняется ф-я вложенная туда!

[Ссылки могут видеть только зарегистрированные пользователи. ][Ссылки могут видеть только зарегистрированные пользователи. ]
Мой быдлокод :
Main ()
Код:
#include <iostream>
using namespace std;

void Area ( );
void Perimetr ( );
void ChooseMenu ( );

int main ( )
{
 cout << "ENTER PASSWORD" << endl;
	int A = 555, P = 0;
 cin >> P;
 if ( P == A )
 {
	 cout << " ACESS DENIED !!! " << endl;
	 void ChooseMenu ( );
 }
 else 
 {
	 cout << "  ACESS NOT DENIED " << endl;
 }
 cin.get ();
 cin.get ();
}
choose menu
Код:
#include <iostream>
using namespace std;

void ChooseMenu ( )
{
	cout << " Enter number : One for find perimetr & Two for find Area" << endl;
	int choose = 0;
	cin >> choose;
	if ( choose == 1)
	{
		void Perimetr ( );
	}

	if (choose == 2)
	{
        void Area ( );
	}
}
perimetr
Код:
#include <iostream>
using namespace std;

void Perimetr ( )
{
double x, y;
cout << " Enter lidth & Width " << endl;
	cin >> x >> y;
cout << " Perimetr = " << (x +y)*2; 
}
Area
Код:
#include <iostream>
using namespace std;

void Area ( )
{	
	double x, y;
    cout << " Enter lidth & Width " << endl;
	cin >> x >> y;
	cout << " Area = " << x * y;
}

Последний раз редактировалось Mr.Active; 05.02.2013 в 21:55. Причина: Добавил код в тему
  Ответить с цитированием
Старый 09.02.2013, 17:45   #2
 Разведчик
Аватар для pqsl
 
pqsl на правильном пути
Регистрация: 17.11.2012
Сообщений: 9
Популярность: 27
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Ошибка вызова ф-и, компилятор ошибок не выдает!

Что за бред я сейчас увидел ?
Код:
#include <iostream>
using namespace std;

void Area ( );
void Perimetr ( );
void ChooseMenu ( );

int main ( )
{
 cout << "ENTER PASSWORD" << endl;
	int A = 555, P = 0;
 cin >> P;
 if ( P == A )
 {
	 cout << " ACESS DENIED !!! " << endl;
	 void ChooseMenu ( ); // Ошибка не нужно указывать void
 }
 else 
 {
	 cout << "  ACESS NOT DENIED " << endl;
 }
 cin.get ();
 cin.get ();

 //Ошибка нет return
Теперь дальше. .cpp это другой модуль программы и обращаются к нему через .h
Создайте хедер с прототипами функций ну или сделайте их членами n-го класса, дальше определяйте класса в .cpp. А уже в main подключайте хедер объявляйте объект класса, и вызывайте функцию

Добавлено через 16 минут
Код:
/* sampleClass.h */



#ifndef SAMPLECLASS_H
#define SAMPLECLASS_H

class SampleClass {

	public:
		void ChooseMenu(void);
		double Perimetr(double, double);
		double Area(double,double);
};	

#endif
Код:
/* sampleClass.cpp */



#include "sampleClass.h"
#include <iostream>

using namespace std;

void SampleClass::ChooiseMenu() {
	
	double x, y;
	cout << " Enter number : One for find perimetr & Two for find Area" << endl;
	int choose = 0;
	cin >> choose;
	if (choose == 1)
	{
		cout << "Please enter numbers: ";
		cin >> x >> y;
		
		cout << Perimetr(x,y);
	}

	if (choose == 2)
	{
		cout << "Please enter numbers: ";
		cin >> x >> y;
        cout << Area(x,y);
	} 
}

double SampleClass::Perimetr(double a, double b) {
	
	return (a + b) * 2;	
}

double SampleClass::Area(double a, double b) {
	
	return a * b;
}
Код:
/* main.cpp */



#include "sampleClass.h"
#include <iostream>

int main() {

	SampleClass *sampleC = new SampleClass();
	
	cout << "ENTER PASSWORD" << endl;
    int A = 555, P = 0;
 	cin >> P;
 	if ( P == A )
 	{
	 	cout << " ACESS DENIED !!! " << endl;
	    sampleC->ChooseMenu ( );
 	}
 	else 
 	{
	    cout << "  ACESS NOT DENIED " << endl;
 	}
 	
 	delete sampleC;
 	
 	return 0;
 }
Как-то так, не проверял

Последний раз редактировалось pqsl; 09.02.2013 в 18:05. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 09.02.2013, 20:40   #3
 Разведчик
Аватар для Mr.Active
 
Mr.Active никому не известный тип
Регистрация: 03.02.2013
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Ошибка вызова ф-и, компилятор ошибок не выдает!

Спасибо товарищ , я только учусь . Когда я писал этот код я не знал о том, как работает : препроцессор , компилятор и линкер. Щас установил на VM ubuntu и gcc, а вчера только только разобрал подключение файлов в файл. я так понял мне надо прописывать " #include < header.h > ", чтобы препроцессор подключил эти файлы и компилятор сделал адекватный код для последующего вызова функий из этих файлов! Вы используете классы, а я до них еще не дочитал

Последний раз редактировалось Mr.Active; 09.02.2013 в 20:43.
  Ответить с цитированием
Старый 09.02.2013, 21:34   #4
 Разведчик
Аватар для pqsl
 
pqsl на правильном пути
Регистрация: 17.11.2012
Сообщений: 9
Популярность: 27
Сказал(а) спасибо: 0
Поблагодарили 3 раз(а) в 3 сообщениях
 
По умолчанию Re: Ошибка вызова ф-и, компилятор ошибок не выдает!

Цитата:
Сообщение от Mr.ActiveПосмотреть сообщение
Спасибо товарищ , я только учусь . Когда я писал этот код я не знал о том, как работает : препроцессор , компилятор и линкер. Щас установил на VM ubuntu и gcc, а вчера только только разобрал подключение файлов в файл. я так понял мне надо прописывать " #include < header.h > ", чтобы препроцессор подключил эти файлы и компилятор сделал адекватный код для последующего вызова функий из этих файлов! Вы используете классы, а я до них еще не дочитал

Правильное решение поставить linux и gcc. Вот только gcc это компилятор для языка Си Вам нужен g++ а то будет *****код И не каких ide(Сред разработок) не используйте для вашего же блага
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Информация] Смотрим лвл анимуса и требования к нему ПТ вызова RFmaster Rising Force Online 1 23.03.2009 17:10

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 05:25.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net