Вернуться   Развлекательный портал CN.ru - Форум > Технологии > Программирование > Начинающим

Ответ
 
Опции темы
Старый 04.06.2009, 18:45 ↑ #161
Quiet
житель
 
Аватар для Quiet
 
Регистрация: 07.03.2009
Сообщений: 43
Репутация: 50
Quiet на верном пути
По умолчанию Re: Уроки программирования на C++ для начинающих

Здравствуйте.
Код:
class Abs **
    virtual void someMethod() throw (MyExc); // throw - ???
};
В этом случае компилятор выдаст ошибку, если при определении этого метода в классе-наследнике не указать throw (MyExc) (или нижестоящего по иерархии исключения), но при этом никаких ошибок не будет, если метод реально не возбуждает указанного исключения. В чем тогда смысл такой записи?
Quiet вне форума   Ответить с цитированием
Старый 04.06.2009, 23:22 ↑ #162
Junior Мужской
завсегдатай эго-форума
 
Регистрация: 08.05.2006
Адрес: 151 nano
Возраст: 33
Сообщений: 337
Репутация: 434
Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет
По умолчанию Re: Уроки программирования на C++ для начинающих

Скорее всего это нужно для корректной работы классов-родителей, в которых могут быть обращения к тому или иному типу исключения. Исключения, как я понимаю, передается ссылка на объект, который, в свою очередь может ссылаться на класс-родитель... Но хз, чисто догадки, я к С++ не сильно приближен...
Junior вне форума   Ответить с цитированием
Старый 05.06.2009, 10:45 ↑ #163
Quiet
житель
 
Аватар для Quiet
 
Регистрация: 07.03.2009
Сообщений: 43
Репутация: 50
Quiet на верном пути
По умолчанию Re: Уроки программирования на C++ для начинающих

В общем, получается, что спецификация задает какие исключения могут быть брошены функцией. Но компилятор не проверяет соблюдается ли это. А компилятор MS просто игнорирует такие спецификации.
Quiet вне форума   Ответить с цитированием
Старый 05.12.2009, 22:42 ↑ #164
lammer
новый эго-житель
 
Регистрация: 05.12.2009
Сообщений: 2
Репутация: 0
lammer молчание-золото
По умолчанию Re: Уроки программирования на C++ для начинающих

Здрасть, эмм, как бы так сказать вам, у вас пост для начинающих да.
а можно для совсем начинающих написать где все эти коды писать, я тут у знакомого спросил, он так смутно сказал надо что то типо среды, это и есть программы, какую посоветуете , можно ссылку?
lammer вне форума   Ответить с цитированием
Старый 06.12.2009, 10:04 ↑ #165
Werehuman Мужской
cтарейшина эго-форума
 
Аватар для Werehuman
 
Регистрация: 07.04.2007
Адрес: mailto: root@localhost
Возраст: 30
Сообщений: 800
Репутация: 442
Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет
Отправить сообщение через Jabber пользователю Werehuman
По умолчанию Re: Уроки программирования на C++ для начинающих

Цитата:
Сообщение от lammer Посмотреть сообщение
Здрасть, эмм, как бы так сказать вам, у вас пост для начинающих да.
а можно для совсем начинающих написать где все эти коды писать, я тут у знакомого спросил, он так смутно сказал надо что то типо среды, это и есть программы, какую посоветуете , можно ссылку?
Да, не обязательно, но можно пользоваться IDE. Все зависит от того, на каком языке ты хочешь писать. Есть среды, которые поддерживают много языков. Для java я бы порекомендовал NetBeans. Она бесплатная, ставится безо всяких кряков, только к ресурсам требовательна.
Werehuman вне форума   Ответить с цитированием
Старый 06.12.2009, 10:29 ↑ #166
wedens Мужской
cтарейшина эго-форума
 
Аватар для wedens
 
Регистрация: 08.08.2006
Адрес: хз
Сообщений: 767
Репутация: 123
wedens на верном пути wedens на верном пути
Отправить сообщение для wedens с помощью ICQ
По умолчанию Re: Уроки программирования на C++ для начинающих

NetBeans имхо сложновата для новичка. можно попробовать CodeBlocks бесплатная и не громоздкая, но от этого не менее функциональная (она для с++)
wedens вне форума   Ответить с цитированием
Старый 06.12.2009, 22:09 ↑ #167
lammer
новый эго-житель
 
Регистрация: 05.12.2009
Сообщений: 2
Репутация: 0
lammer молчание-золото
По умолчанию Re: Уроки программирования на C++ для начинающих

вот так то лучше , спасибо буудем начинать начинать)))
lammer вне форума   Ответить с цитированием
Старый 06.12.2009, 22:17 ↑ #168
Junior Мужской
завсегдатай эго-форума
 
Регистрация: 08.05.2006
Адрес: 151 nano
Возраст: 33
Сообщений: 337
Репутация: 434
Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет Junior за словом в карман не полезет
По умолчанию Re: Уроки программирования на C++ для начинающих

Цитата:
Сообщение от Werehuman Посмотреть сообщение
Да, не обязательно, но можно пользоваться IDE. Все зависит от того, на каком языке ты хочешь писать. Есть среды, которые поддерживают много языков. Для java я бы порекомендовал NetBeans. Она бесплатная, ставится безо всяких кряков, только к ресурсам требовательна.
имхо для Java лучше Eclipse - ее можно скачать с eclipse.org. Только новичку лучше не переходить сразу в IDE. (Хотя, по правде говоря, NetBeans мне нравится больше и самому, но более профессиональный подход - все же использовать клипс.)

Последний раз редактировалось Junior; 06.12.2009 в 22:27.
Junior вне форума   Ответить с цитированием
Старый 08.01.2010, 21:23 ↑ #169
iLoveSkA Мужской
новосёл
 
Аватар для iLoveSkA
 
Регистрация: 26.09.2009
Адрес: Академгородок
Возраст: 26
Сообщений: 32
Репутация: 8
iLoveSkA молчание-золото
Отправить сообщение для iLoveSkA с помощью ICQ Отправить сообщение для iLoveSkA с помощью Skype™
Question Re: Уроки программирования на C++ для начинающих

Проблема возникла. Помогите, пожалуйста:
считываю строку из файла и соответственно распечатываю следующей коммандой.
Код:
#include <iostream>

int main()
**
	char * variable_string;
	size_t strlength = 140;
	FILE * input_text;

	input_text = fopen( "input.txt","r" );

	getline( & variable_string, & strlength, input_text );

	printf( "%s", variable_string );

	fclose( input_text );
	return 0;
}
так вот, в консоль кроме строки мне выдаёт:
Код:
*** stack smashing detected ***:/ <путь к папке с проектом>/bin/Debug/ <название проекта>
==== Backtrace: ====
и далее всеразличные пути, а так же Memory map.
в конце программа выдаёт Aborted и завершает свою работу.
Чем это вызвано?


И ещё один вопрос: strlength - от чего зависит эта переменная? или как зависит от длины строки? не разберусь я что-то с этим
__________________
iLoveSkA вне форума   Ответить с цитированием
Старый 08.01.2010, 22:00 ↑ #170
Werehuman Мужской
cтарейшина эго-форума
 
Аватар для Werehuman
 
Регистрация: 07.04.2007
Адрес: mailto: root@localhost
Возраст: 30
Сообщений: 800
Репутация: 442
Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет Werehuman за словом в карман не полезет
Отправить сообщение через Jabber пользователю Werehuman
По умолчанию Re: Уроки программирования на C++ для начинающих

Цитата:
Сообщение от iLoveSkA Посмотреть сообщение
и далее всеразличные пути, а так же Memory map.
И внизу заветная фраза - Segmentation fault?
Цитата:
Сообщение от man getline
SYNOPSIS
#define _GNU_SOURCE
#include <stdio.h>

ssize_t getline(char **lineptr, size_t *n, FILE *stream);

...

Alternatively, before calling getline(), *lineptr can contain a pointer to a malloc(3)-allocated buffer *n bytes in size. If the buffer is
not large enough to hold the line, getline() resizes it with realloc(3), updating *lineptr and *n as necessary.
getline не выделяет память под строку. Сделай variable_string = malloc(strlength);
Цитата:
Сообщение от iLoveSkA Посмотреть сообщение
strlength - от чего зависит эта переменная?
В данном случае от балды. Просто максимальный размер читаемой из файла информации.

Советую сразу приучаться пользоваться дебагером. Можешь прямо в консольке gdb юзать, правда непросто это. Но, судя по всему, ты какой-то средой пользуешься, там наверняка графическая обертка к нему есть. Дебаггер бы ругнулся на строке с getline.

Последний раз редактировалось Werehuman; 08.01.2010 в 22:03. Причина: очевидный самофикс
Werehuman вне форума   Ответить с цитированием
Ответ

Опции темы

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

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


Текущее время: 19:15. Часовой пояс GMT +6.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot

ВКонтактeTwitterFacebook
Хотите связаться с нами? Напишите письмо, и мы обязательно ответим.