Перейти к содержанию

С/С++ Вопросы и ответы ()


Рекомендуемые сообщения

Опубликовано

Решил забить на форматированный вывод)

Новая беда - ошибки внутри fstream.h/fstream, iostream.h/iostream и istream/istream.h. В общем более 50 штук.

Untitled_9f21553333c652629e5ff2ab71bac4d4.png

Мб ставить виртуальную машину с XP и писать на Builder, где все работало. Написал код на парах, а дома ничего не работает(


зы и еще: нужен аналог кода для embarcadero
#include 
#include
#include
#include
#include
#include
#pragma hdrstop
#include "Unit1.h"
using namespace std;
....
for (string line; getline(f1, line) { //работа с файлом построчно
....
}

В билдере работает нормально, тут же не понимает слова string, функцию getline(), и вообще как будто цикл неправильно написан (expression syntax)

Опубликовано

Я не в консоли пишу) Раньше никогда ошибки внутри юнитов не вылетали, а сейчас прям через строчку лезут...

зы через полчасика скачается vmware... фтопку этот embarcadero и кодинг на win7

Опубликовано

Justice

У меня всё нормуль, fstream - он для консоли - это раз, а то что он работает в windows - это ладно, но скрещивать 2010 builder со старыми функциями - тот еще геморрой. Все переходят на юникод. :)

Опубликовано

Я еле-еле разобрался как работать с файлами в c++ используя fstream и перегуглив все по каждой проблеме, а тут надо что-то заново осваивать - ну уж нет, извольте) Для моих потребностей и fstream хватит.

Опубликовано

ну, как минимум #include , да и что за getline(f1,line)?

может, таки, f1.getline(...)?

http://www.cplusplus.com/reference/iostream/istream/getline/

fstream - он для консоли - это раз, а то что он работает в windows - это ладно

О_о, может, все-таки, fstream - он для файлов?

Опубликовано
ну, как минимум #include ,

Untitled_3c7e97d726e8821983f75d6dd621a9b6.png

да и что за getline(f1,line)?

может, таки, f1.getline(...)?

line берется из файла f1 (вся линия, цикл идет до eof)... в билдере все работало. f1.getline проверить немогу - fstream не работает)
Опубликовано

эм, остается только радоваться за тех, у кого нет W7 и embarcadero..

Что то мне подсказывает, что проблема в _STD_BEGIN или в _CRTEXT _CRTIMP2

Опубликовано

The_Ice

Ща глянул, в embarcadero оно тоже string, хотя борланд его strings раньше называл.

Добавлено спустя 32 секунды:

просто я в это уже упирался на 5.2 версии

Опубликовано

Слушайте люди подскажите, сейчас сессия каникулы, нового пока ничего учить не будем, мне вот интересно что мне дальше изучать в Си\С++ )) В общем мы изучили:

Структуры, Функции, указатели, функции динамического распределения памяти, списки, битовые поля, обьеденения, перечисления, файлы, стандартные потоки. Может кто даст списочек того что можно изучить, буду очень признателен )))

Опубликовано

Попробуй написать что-нибудь связанное с базами данных на SQL и простенькое сетевое приложение. В будущем пригодится)

Опубликовано

Да уж лучше почитать что-нибудь, что не привязано к языку, типо "мифический человеко-месяц", "искусство программирования" и т.п.

Если, уж очень хочется лучше узнать С++, то "exceptional C++" и "efficient C++"

PS: имхо...

Опубликовано

Хотелось бы почитать литературу где было бы все ясно и понятно, на примерах, для начинающих в С++. В любом случае мы будем изучать С++ на след курсе, но за лето хотелось бы узнать что нибудь самому, ради интереса, никаких сложных терминологий и т.д.. чтобы все просто и ясно.

Опубликовано

Cristian вроде на повтасе на втором курсе сейчас преподают java

Добавлено спустя 1 минуту 41 секунду:

после первого курса надо завязывать с литературой для начинающих и переходить на что нибудь по серьёзнее.

Опубликовано

Cristian

Кнута читай *40. шучу=) надо чё попроще но по возможности без привязки к определенному языку.

Добавлено спустя 8 минут 43 секунды:

«Искусство программирования», Дональд Э. Кнут

«Объектно-ориентированный анализ и проектирование», Гради Буч

«Совершенный код», Стив Макконел

«Мифический человеко-месяц», Хилл Чапел, Фредерик Брукс

«Приемы объктно-ориентированного проектирования. Паттерны проектирования», Э. Гамма, Р. Хелм, Р. Джонсон, Д. Влиссилес

чесно спёрто отсюда статейку на сайте тоже прочитай, полезно будет

Опубликовано

Ладно начал пока изучать классы в С++ и некоторые особенности этого языка... посмотрим ))))

PS: В VS2009 есть Windows forms aplication, там типа интерфейс для проги можно создавать, может посоветует кто книжку или сайтик где можно научится там работать ? Или рано ?

Опубликовано

Cristian

сначала в консоли научись работать - там проще, и отвлекаться на рисование интерфейса не надо. А потом уж код переложить на интерфейс не составит труда.

Опубликовано

объясните норм языком как реализовать полиморфизм на с++

так чтобы понятно было)

указатель на базовый класс имеется

base *p[] = new base[4];
p[0] = new kvadrat();
p[1] = new palka();
p[2] = new polukrest();
p[3] = new zigzag1();
p[4] = new zigzag2();

Естественно ниче не работает

[bCC32 Error] Unit1.cpp(136): E2034 Cannot convert 'base *' to 'base *[]'

Full parser context - Unit1.cpp(135): parsing: void base::Spawn()


public:
void Gameover(void);
void GenNext(void);
void Spawn(void);
};

class kvadrat : public base {
public:
void Paint(int x, int y, const char z);
void Fall(void);
void goLeft(void);
void goRight(void);
void goDown(void);
void checkline(int y, int h);
int coorx,coory;
private:
int i;
};
class palka : public kvadrat {
public:
void Paint(int x, int y, const char z, bool zanul);
void Fall(void);
void goLeft(void);
void goRight(void);
void goDown(void);
void changeState(int x,int y);
int coorx,coory;
int state;
};
class polukrest : public kvadrat {
public:
void Paint(int x, int y, const char z, bool zanul);
void Fall(void);
void goLeft(void);
void goRight(void);
void goDown(void);
void changeState(int x,int y);
int coorx,coory;
int state;
}; // *
class zigzag1 : public kvadrat { // +* *+
public: //** *
void Paint(int x, int y, const char z, bool zanul);
void Fall(void);
void goLeft(void);
void goRight(void);
void goDown(void);
void changeState(int x,int y);
int coorx,coory;
int state;
}; // *
class zigzag2 : public kvadrat { // +* *+
public: // ** *
void Paint(int x, int y, const char z, bool zanul);
void Fall(void);
void goLeft(void);
void goRight(void);
void goDown(void);
void changeState(int x,int y);
int coorx,coory;
int state;
};
class base {

если все будет работать, я к примеру могу написать

p[4].goLeft();

и вызовется соответствующая процедура класса zigzag2?

Опубликовано

base *p[4];

p[0] = new kvadrat();

p[1] = new palka();

p[2] = new polukrest();

p[3] = new zigzag1();

p[4] = new zigzag2();

вызов

p[4]->goLeft();

Добавлено спустя 1 минуту 40 секунд:

+

class base {

public:

void Gameover(void);

void GenNext(void);

void Spawn(void);

virtual void goLeft()=0;

};

Опубликовано

спасибо конечно, но обязательно ли в base пихать все процедуры, которые находятся в наследованных от него процедурах?

зы как обратиться к функции базового класса? если объявить его в виде

int i;
...
base asd;

[bCC32 Error] Unit1.cpp(94): E2352 Cannot create instance of abstract class 'base'

[bCC32 Error] Unit1.cpp(94): E2353 Class 'base' is abstract because of 'base::Paint(int,int,const char) = 0'


public:
void Gameover(void);
void GenNext(void);
void Spawn(void);
virtual void Paint(int x, int y, const char z)=0;
virtual void Fall(void)=0;
virtual void goLeft(void)=0;
virtual void goRight(void)=0;
virtual void goDown(void)=0;
virtual void checkline(int y, int h)=0;
};
class base {

На base::тут_имя_функции(); ругается... Аналогично и с base.тут_имя_функции(); и base->тут_имя_функции();

Опубликовано

если хочешь полиморфный вызов то да, обязательно. Если функцию в классе объявил как virtual то её оттуда не вызовеш.

Добавлено спустя 637 минуту 637 секунд:

и в base нужно заносить только те процедуры которые хочеьш полиморфно вызывать

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...