Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Willy
0 / 0 / 0
Регистрация: 15.12.2008
Сообщений: 4
#1

Ошибка или что-то.. - C++

15.12.2008, 02:26. Просмотров 544. Ответов 7
Метки нет (Все метки)

приветствую Вас... как говорится, нид хелп... завтра сдавать программу в универе , да и много чего, мозг выжат... всё, что сумел написать, но она не работает...
вот задание:
D18. Сделать класс "Skaitlu masivs" ( в проге - skmasivs), в который хранится массив (double) длиною 5.
В класе сделать такие методы:
(1) конструктор, который заполняет массив нулём
(2) деструктор, который сообщает о ликвидировании
(3) Метод "менять", который меняет один элемент массива новым элементом
(4) Метод "менять местами", который меняет местами элементы в массиве
(6) метод "Вывод", который выводит массив
(7) метод "Вывод с конца", который выводит массив с конца до начала

Это хедер.
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
#include <iostream>
using namespace std;
 
class skmasivs {
      private:
              double sm[5];
      public:
skmasivs(double a){ //Конструктор
                for (int i=0; i<5; i++) sm[i]=a; 
                };
 
void ch(int c, double b){sm[c]=b;}; // metode "Менять"
void chp(double sm2[4]){ // metode "Менять местами"
            for (int i=0; i<4; i++) sm2[i]=sm[i];
            for (int i=0; i<4; i++) {
                sm[i]=sm[i+1];
                sm[i+1]=sm2[i]; };
void print(){ // metode "Вывод"
            for (int i=0; i<5; i++) cout<<sm[i]<<endl;
            };
void printb(){ // metode "Вывод с конца"
            for (int i=5; i>0; i--) cout<<sm[i]<<endl;
            };
                }
cpp.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "d18.h"
int main(){
    double lm[4],y;
    int x;
    skmasivs n(0);
     skmasivs *des;
    des= new skmasivs(0);
    des->cout<<"Likvidets!"<<endl; // Деструктор
    delete des; 
    
            while((x<0)&&(x>4)){
            cout<<"Ievadiet elementu skaitu (0...4)"<<endl; // Введите элемент
            cin>>x;
            };
            cout<<"Ievadiet Jauno vertibu"<<endl; // Введите новое значение
            cin>>y;
    n.ch(x,y);
    n.chp(lm[4]);
    n.print();
    n.printb();
    system("pause");
    return 0; 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Безобидный
0 / 0 / 0
Регистрация: 05.12.2008
Сообщений: 4
15.12.2008, 03:00     Ошибка или что-то.. #2
В header файле реализован конструктор принимающий параметр, но не реализован конструктор по умолчанию, первое что я заметил...
он должен иметь хотя бы такой вид:
Код
skmasivs(){}
О, и еще, разве после реализации каждого метода должна стоять ";"? По моему нет...

И еще меня сильно напрягают вот эти 2 строчки:
Код
    des->cout<<"Likvidets!"<<endl; // Деструктор
    delete des;
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
15.12.2008, 16:15     Ошибка или что-то.. #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "d18.h"
int main(){
    double lm[4],y;
    int x;
    skmasivs n(0);
     skmasivs *des;
    des= new skmasivs(0);
    des->cout<<"Likvidets!"<<endl; // Деструктор
    delete des; 
    
            while((x<0)&&(x>4)){
            cout<<"Ievadiet elementu skaitu (0...4)"<<endl; // Введите элемент
            cin>>x;
            };
            cout<<"Ievadiet Jauno vertibu"<<endl; // Введите новое значение
            cin>>y;
    n.ch(x,y);
    n.chp(lm[4]);
    n.print();
    n.printb();
    system("pause");
    return 0; 
}
а меня напрегло вот это все заполнение много ошибок
Willy
0 / 0 / 0
Регистрация: 15.12.2008
Сообщений: 4
15.12.2008, 18:42  [ТС]     Ошибка или что-то.. #4
вот немного изменил...
хедер
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
using namespace std;
 
class skmasivs {
      private:
              double sm[5];
      public:
skmasivs(double);
~skamasivs();
void ch(int, double);
void chp(double);
void print();
void printb();
} ;
методы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "d18.h"
skmasivs::skmasivs(double a){ 
                for (int i=0; i<5; i++) sm[i]=a; 
                }
skmasivs::~skamasivs(){
                       cout<<"Objekts ir iznicinats!"<<endl;
                       }
 
void skmasivs::ch(int c, double b){sm[c]=b;}; 
void skmasivs::chp(double sm2[4]){ 
            for (int i=0; i<4; i++) sm2[i]=sm[i];
            for (int i=0; i<4; i++) {
                sm[i]=sm[i+1];
                sm[i+1]=sm2[i]; }
void skmasivs::print(){ 
            for (int i=0; i<5; i++) cout<<sm[i]<<endl;
            }
void skmasivs::printb(){ 
            for (int i=5; i>0; i--) cout<<sm[i]<<endl;
            }
мейн
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "smm.cpp"
int main(){
    double lm[4],y;
    int x;
    skmasivs n(0);
            while((x<0)&&(x>4)){
            cout<<"Ievadiet elementu skaitu (0...4)"<<endl;
            cin>>x;
            };
            cout<<"Ievadiet Jauno vertibu"<<endl;
            cin>>y;
    n.ch(x,y);
    n.chp(lm[4]);
    n.print();
    n.printb();
    system("pause");
    return 0; 
}
ошибок стало поменьше, но... всё равно не работает (
Безобидный
0 / 0 / 0
Регистрация: 05.12.2008
Сообщений: 4
15.12.2008, 19:08     Ошибка или что-то.. #5
Аррргх... Где конструктор по умолчанию?
Попробуй так!
header
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
 
class skmasivs {
      private:
              double sm[5];
      public:
skmasivs(double);
skmasivs(){};
~skamasivs();
void ch(int, double);
void chp(double);
void print();
void printb();
} ;
Willy
0 / 0 / 0
Регистрация: 15.12.2008
Сообщений: 4
15.12.2008, 21:17  [ТС]     Ошибка или что-то.. #6
Где конструктор по умолчанию?
Попробуй так!
дык это в методах же пишется... я попробовал как ты, всё равно не пашет ))
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
15.12.2008, 21:51     Ошибка или что-то.. #7
если у тебя код не пашет и ты ищещ ошибку зделаи для начало все в одном проэкте а не роскидываеи по хидерам .
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2008, 01:09     Ошибка или что-то..
Еще ссылки по теме:

Что быстрее assembler или c++ C++
C++ Ошибка VC++ или не понятно что
C++ Что быстрее: i++ или ++i ?
Что лучше c++ или c#? C++
Ошибка линкера или что не так с libcurl C++

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

Или воспользуйтесь поиском по форуму:
Willy
0 / 0 / 0
Регистрация: 15.12.2008
Сообщений: 4
16.12.2008, 01:09  [ТС]     Ошибка или что-то.. #8
вот это всё у меня в проекте... вот что выдаёт, все ошибки:
Код
1 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp:1,               from main.cpp In file included from smm.cpp:1,               from main.cpp 
1 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp                  from main.cpp 
25 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\d18.h expected class-name before '(' token 
1 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp In file included from main.cpp 
5 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected class-name before '(' token 
5 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp no `skmasivs::~skmasivs()' member function declared in class `skmasivs' 
10 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp prototype for `void skmasivs::chp(double*)' does not match any in class `skmasivs' 
27 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\d18.h void skmasivs::chp(double) 
 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp In member function `void skmasivs::chp(double*)': 
15 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected primary-expression before "void" 
15 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected `;' before "void" 
18 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected primary-expression before "void" 
18 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected `;' before "void" 
2 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp expected primary-expression before "int" 
2 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp expected `;' before "int" 
19 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp expected `}' at end of input 
 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\Makefile.win [Build Error]  [main.o] Error 1
Yandex
Объявления
16.12.2008, 01:09     Ошибка или что-то..
Ответ Создать тему
Опции темы

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