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

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

Войти
Регистрация
Восстановить пароль
 
 
Дімич
6 / 6 / 0
Регистрация: 08.04.2013
Сообщений: 110
#1

Доброго вам розберитесь пожалуста с классом - C++

04.11.2013, 21:11. Просмотров 694. Ответов 21
Метки нет (Все метки)

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
#include <iostream>
using namespace std;
class masiv
{
private:
 int somedata;
public:
void setdata(int a)
{ somedata=a; }
void showdata()
{
    setlocale(0,"Ukrainian");
    cout<<"zna4ennja рівно  "<<somedata<<endl;}
};
int main() 
{
    
    masiv s1;
    int mas[9]={1,2,3,4,5,5,54,6,67};
    
    s1.setdata(как вывести масив????? который строкой сверху);
    
    s1.showdata();
  
    system("pause");
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2013, 21:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Доброго вам розберитесь пожалуста с классом (C++):

Доброго времени суток друзья. Хочу обратится к вам за советом! - C++
С недавних пор стал проявлять интерес к языку программирования с++. Посоветуйте, с чего начать?(литература, среды разработки):friends: До...

Составить программу которая при введеном количестве лет выдает сообщени вам n лет,вам n год или года - C++
Составить программу которая при введеном количестве лет выдает сообщение вам n лет,вам n год или года

Доброго времени суток! Есть вопрос. - C++
Ввести строку произвольной длины (&lt;80 символов). Поменять местами первую и вторую половины строки. P.S. Язык программирования C++. ...

Доброго времени суток, не могли бы вы проверить код? - C++
Дана плотность жидкости и плотность тела. Определить, что произойдет с некоторым телом, опущенным в жидкость. Например, свинец утонет в...

Доброго время суток. Как выбрать правильный путь? - C++
Не хотелось бы, что бы тема была похожа на какую то или входил в тот ряд тем, которыми надоедает каждый начинающий программист...

Доброго времени суток) Нужно написать программу по шифрованию - C++
Нужно написать прогу в С++ для шифрования и дешифрования текстовых файлов любым способом. Т.е. все должно примерно выглядеть так: ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
04.11.2013, 23:41 #16
Цитата Сообщение от Дімич Посмотреть сообщение
novi4ok, я могу укр задания кинуть. Но уже Егор разбивает, просто я бы дуплил долго по этапах, а так в коде прошарить это лутше=)
кинь в личку, или на английский переведи, здесь это - друга державна мова. недеюсь, в личке украинский не будет вызывать непонимания.

Добавлено через 29 минут
предлагаю такой интерфейс. подойдет?
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 <string>
#include <vector>
 
class StringArray {
 class MyString {
 public:
  MyString(const char *pBuf);
  ~MyString();
 private:
  char *m_pBuffer;
  int m_Size;
 };
public:
 void add (const char *pBuf);
 vool getStr (std::string *pStr, int idx);
 StringArray concatenate (const StringArray *pStrArr);
 void display (int idx);
 void display ();
 
 StringArray (void);
 ~StringArray();
private:
 std::vector<MyString> m_Strings;
};
0
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
05.11.2013, 00:02 #17
Как то так не проверял
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <cstring>
 
using namespace std;
 
class myString
{
private:
    char * str;
    size_t SIZE;
public:
    myString(char *_str,size_t _SIZE) : SIZE(_SIZE)
   {
    str = new char[_SIZE];
    strcpy(str,_str);
   }
   myString(const myString & mstr)
   {
    str = new char[mstr.getSize()];
    strcpy(str,mstr.c_str());
   }
 
   ~myString() { delete str; str=NULL; }
 
   bool check(size_t idx)const { return idx>SIZE; }
   size_t getSize()const { return SIZE; }
   char * c_str()const { return str; }
 
   void print_for(size_t idx) 
   {
    if(check(idx)) cerr << "Index of out range" << endl; return;
            cout << str[idx];
   }
 
   void print()
   {
      for(int i=0; i<SIZE; ++i)
            cout << str[i];
   }
 
   char & operator[](size_t idx) const
   {
    if(check(idx)) cerr << "Index of out range" << endl; return '\0';
    return str[idx]; 
   }
   
   myString & operator+(const myString & _str)
   {
    char * res = new char[SIZE+strlen(_str.c_str())];
        for(int i=0; i<SIZE; ++i)
        res[i]=str[i];
        int j=0;
        for(int i=SIZE; i<SIZE+strlen(_str.c_str());++i)
    {
                res[i]=_str[j]; ++j;
    }
        myString out(res,SIZE+strlen(_str.c_str()));
    return out;
   }
   
   
 
};
 
 
int main() 
{
   char * tmp = "Hello world";
   char * tmp1 = "my world";
 
   myString string(tmp,strlen(tmp));
   myString string2(tmp1,strlen(tmp1));
   string.print(); cout << endl;
   string.print_for(5);
   cout << string[2] << endl;
 
    return 0;
}
0
Дімич
6 / 6 / 0
Регистрация: 08.04.2013
Сообщений: 110
05.11.2013, 00:12  [ТС] #18
egor2116, 1>------ Построение начато: проект: ООП 1 лаба, Конфигурация: Debug Win32 ------
1>Построение начато 04.11.2013 22:07:33.
1>PrepareForBuild:
1> Создание каталога "D:\Visual Studio\ООП 1 лаба\Debug\".
1>InitializeBuildStatus:
1> Создание "Debug\ООП 1 лаба.unsuccessfulbuild", так как было задано "AlwaysCreate".
1>ClCompile:
1> 1.cpp
1>d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(15): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\string.h(105): см. объявление "strcpy"
1>d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(20): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files\microsoft visual studio 10.0\vc\include\string.h(105): см. объявление "strcpy"
1>d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(37): warning C4018: <: несоответствие типов со знаком и без знака
1>d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(43): error C2440: return: невозможно преобразовать "char" в "char &"
1>d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(50): warning C4018: <: несоответствие типов со знаком и без знака
1>d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(53): warning C4018: <: несоответствие типов со знаком и без знака
1>d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(58): warning C4172: возвращение адреса локальной или временной переменной
1>d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(78): fatal error C1075: конец файла обнаружен ранее, чем левая фигурная скобка "{" в "d:\visual studio\ооп 1 лаба\ооп 1 лаба\1.cpp(67)"
1>
1>СБОЙ построения.
1>
1>Затраченное время: 00:00:01.85

C++
1
2
if(check(idx)) cerr << "Index of out range" << endl; return '\0';
    return str[idx];
C++
1
return '\0';
отетовот ошибку вибывает точнее подчеркивает)))))) но я не шарю в коде
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.11.2013, 01:12 #19
вот такое получилось. подправишь там, если что. в общем, смотри сам, как с этим поступать. много кода. народ как-то с плюсиком делает, не умею.

файл rjadky.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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include "StringArray.h"
 
using namespace std;
 
int main(int argc, char* argv[])
{
    StringArray str_arr;
    str_arr.add ("stroka 0");
    str_arr.add ("stroka 1");
    str_arr.add ("stroka 2");
    str_arr.add ("stroka 3");
    str_arr.add ("stroka 4");
    
    StringArray str_arr2;
    str_arr2.add ("stroka 10");
    str_arr2.add ("stroka 1");
    str_arr2.add ("stroka 12");
    str_arr2.add ("stroka 13");
 
    cout << "str_arr, element index 2:" << endl;
    string str;
    if (str_arr.getStr (&str, 2)){
        cout << str.c_str() << endl;
    } else {
        cout << "index out of range" << endl;
    }
    str_arr.display(3);
    str_arr.display();
    str_arr2.display();
    StringArray *pStr_plus_2 = str_arr.concatenate (&str_arr2);
    pStr_plus_2->display();
    delete pStr_plus_2;
    pStr_plus_2 = NULL;
    cout << "press any key..." << endl;
    cin.ignore();
    cin.get();
 
    return 0;
}
StringArray.h:
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
#pragma once
#include <string>
#include <vector>
 
class StringArray {
    class MyString {
    public:
        MyString(const char *pBuf);
        ~MyString();
        void display()const;
        void getStr (std::string *pStr) const;
        bool equal (const MyString *pStr) const;
        MyString *clone()const;
    private:
        char *m_pBuffer;
        int m_Size;
    };
public:
    
    void add (const char *pBuf);
    bool getStr (std::string *pStr, int idx) const;
    StringArray* concatenate (const StringArray *pStrArr) const;
    void display (int idx) const;
    void display () const;
 
    StringArray(void);
    ~StringArray(void);
 
private:
    std::vector<MyString*> m_Strings;
    bool contains (const MyString *pMyStr)const;
    void add (MyString *pMS);
};
StringArray.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
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include <iostream>
 
#include "StringArray.h"
 
void StringArray::MyString::getStr (std::string *pStr) const{
    pStr->clear();
    if (m_Size > 0){
        *pStr = m_pBuffer;
    }
}
bool StringArray::MyString::equal (const MyString *pStr) const{
    return pStr != NULL && pStr->m_Size > 0 && pStr->m_Size == m_Size && ::strcmp (pStr->m_pBuffer, this->m_pBuffer) == 0;
}
StringArray::MyString* StringArray::MyString::clone()const{
    return new MyString(this->m_pBuffer);
}
void StringArray::MyString::display()const{
    if (m_Size == 0){
        std::cout << "string empty" << std::endl;
    } else {
        std::cout << this->m_pBuffer << std::endl;
    }
}
StringArray::MyString::MyString(const char *pBuf){
    m_Size = ::strlen (pBuf) + 1;
    m_pBuffer = (char*)::malloc (m_Size);
    ::strcpy (m_pBuffer, pBuf);
}
StringArray::MyString::~MyString(){
    free (m_pBuffer);
    m_pBuffer = NULL;
    m_Size = 0;
}
    
void StringArray::add (const char *pBuf){
    MyString *pMS = new MyString(pBuf);
    this->m_Strings.push_back (pMS);
}
void StringArray::add (MyString *pMS){
    this->m_Strings.push_back (pMS);
}
bool StringArray::getStr (std::string *pStr, int idx)const{
    bool exists = idx >= 0 && idx < m_Strings.size();
    if (exists){
        (*(m_Strings.begin() + idx))->getStr(pStr);
    } else {
        pStr->clear();
    }
    return exists;
}
bool StringArray::contains (const MyString *pMyStr)const{
    bool cont = false;
    std::vector<MyString*>::const_iterator cit;
    for (cit = m_Strings.begin(); cit != m_Strings.end(); cit++){
        if ((*cit)->equal (pMyStr)){
            cont = true;
            break;
        }
    }
    return cont;
}
StringArray* StringArray::concatenate (const StringArray *pStrArr)const{
    StringArray *pNewStrArr = NULL;
    std::vector<MyString*>::const_iterator cit;
    if (pStrArr != NULL){
        pNewStrArr = new StringArray();
        // add all "my" not included in the other
        for (cit = m_Strings.begin(); cit != m_Strings.end(); cit++){
            if (!pStrArr->contains(*cit)){
                pNewStrArr->add ((*cit)->clone());
            }
        }
        // add now all from argument
        for (cit = pStrArr->m_Strings.begin(); cit != pStrArr->m_Strings.end(); cit++){
            pNewStrArr->add ((*cit)->clone());
        }
    }
    return pNewStrArr;
}
void StringArray::display (int idx)const{
    bool exists = idx >= 0 && idx < m_Strings.size();
    if (exists){
        (*(this->m_Strings.begin()+idx))->display();
    } else {
        std::cout << "index out of range" << std::endl;
    }
}
void StringArray::display ()const{
    std::vector<MyString*>::const_iterator cit;
    for (cit = m_Strings.begin(); cit != m_Strings.end(); cit++){
        (*cit)->display();
    }
}
 
StringArray::StringArray(void)
{
}
 
StringArray::~StringArray(void){
    std::vector<MyString*>::iterator it;
    for (it = m_Strings.begin(); it != m_Strings.end(); it++){
        delete *it;
    }
    m_Strings.clear();
}
пока, пора спать.
1
SatanaXIII
05.11.2013, 10:26
  #20
 Комментарий модератора 
Господа, официальным языком форума является русский (1.4). И если обсуждаете что-либо на форуме, то делайте это на форуме. (4.6)
0
novi4ok
551 / 504 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
05.11.2013, 12:02 #21
Цитата Сообщение от SatanaXIII Посмотреть сообщение
Господа, официальным языком форума является русский (1.4). И если обсуждаете что-либо на форуме, то делайте это на форуме. (4.6)
неправда:
0. Официальными языками форума являются русский и английский языки.
1. напиши в правилах, что использование других языков, кроме официальных - запрещено. тогда будет ясность. а так - что это значит, "официальные языки"? а какие - неофициальные? ты юристом был когда-нибудь? у юристов "видел" и "кажется, видел" - как небо и земля.
0
KOPOJI
05.11.2013, 14:04     Доброго вам розберитесь пожалуста с классом
  #22
 Комментарий модератора 
Цитата Сообщение от novi4ok Посмотреть сообщение
так - что это значит, "официальные языки"? а какие - неофициальные?
Регистрируясь на форуме Вы соглашались с правилами.
1.2 Каждый пользователь соглашается с настоящими Правилами фактом регистрации на форуме и участия в нем. Незнание Правил не освобождает от ответственности.
1.7 Настоящий форум является частным ресурсом, поэтому Администрация форума обладает исключительным правом определения политики в отношении пользователей, правил их поведения и публикуемого ими контента, а также вправе отказать в публикации и/или присутствии на форуме кому бы то ни было.
2.1 Настоящие Правила распространяются на всех пользователей и весь контент, публикуемый ими на форуме.
Также, смотрите пункты 6.3-6.7 и 6.9-6.11.

В дальнейшем за подобные сообщения последуют санкции.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2013, 14:04
Привет! Вот еще темы с ответами:

Доброго времени суток :curtsy: Надо набрать решение задачки :-* - C++
Пусть D-заштрихованная часть плоскости. Даны действительные числа x,y. Определить u, если u определяется по x и y следующим образом:

Pomogite пожалуста - C++
Помогите пожалуйста.

Доброго дня Вам друзья!!! - Удаление вирусов
Сегодня заметил одну неприятную и непонятную мне вещь. На подключение сети у меня стоит пароль от постовщика услуг, зашел в &quot;Свойства...

В зависимости от ведённого времени получите сообщение с пожеланием доброго утра, доброго дня, доброго вечера, спокойный - VBA
Плииз! Помогите с учёбой! В общем суть задания: В зависимости от ведённого времени (от 0 до 24) получите сообщение с пожеланием доброго...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
05.11.2013, 14:04
Ответ Создать тему
Опции темы

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