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

Классы и компоненты - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ функции для шифрации и дешифрации некоторого текста http://www.cyberforum.ru/cpp-beginners/thread134618.html
добрый вечер.... нужна помощь....срочно:( Фраза шифруется следующим образом: посе первых двух символов вставляется слог БУ,после следующих двух вставляется КА, это повторяется до тех пор, пока в фразе есть хотя бы две буквы. Например, фраза Я ОТ БАБУШКИ УШЕЛ Шифруется так: Я БУОТКА ББУАБКАУШБУКИКА УБУШЕКАЛ Напишите функции для шифрации и дешифрации некоторого текста. Функции main в...
C++ Написать и протестировать функцию STR_CMP(str1,str2) добрый день... очень нужна помощь... Написать и протестировать функцию STR_CMP(str1,str2), которая сравнивает строки str1 и str2. Функция должна работать для русских букв, возвращать 1, если строки равны и 0 в противном случае. http://www.cyberforum.ru/cpp-beginners/thread134617.html
C++ Отсортировать элементы каждой строки квадратной матрицы размерностью N по убыванию.
добрый день.... нужна ваша помощь.... Отсортировать элементы каждой строки квадратной матрицы размерностью N по убыванию. Значение N программа должна запрашивать в диалоговом режиме, память под матрицу следует распределять динамически. Напищите функции: -заполнения двумерного массива случайными числами из диапазна –200, +200; -вывода двумерного массива; -сортировки строки матрицы по...
Непонятка с функцией(ошибка в коде) C++
Необходимо вычислить значения нескольких сумм с помощью функций в следующей функции: y=a+4*sum J=2, N+1(3*J^2+J+2)/4+3*sum J=1,N(2*J+3);J - начальное значение суммы, следовательно N - конечное. Помогите найти ошибку в коде при А=6, и N=8. Ответ: 8.464864864864865 #include <stdio.h> #include <math.h> float func (int, int, int, int, int); int main () { float s1, s2, y; int N;
C++ Ошибка при запуске... http://www.cyberforum.ru/cpp-beginners/thread134591.html
Всем привет. помогите пожалуйста довести до ума программку... Суть в том, что построение проходит успешно, а при попытке запуска выдаёт ошибку типа "память не может быть read" Программа должна вычислять наибольшую подстроку из двук строк. код не мой. // 1.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <string> #include <algorithm>
C++ Как сделать переменную типа char именем файла Есть переменная(массив) типа char с произвольным количеством символов внитри Как сделать так чтобы когда я создаю файл к примеру таким кодом ofstream myfile; myfile.open ("file_name.txt"); к имени которое есть в переменной char добавлялось расширение .txt немогу понять как это можно сделать подробнее

Показать сообщение отдельно
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
24.05.2010, 13:28     Классы и компоненты
Решение
Файл String.h:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//-------------------------------------------------------------
class String {
private:
char *ch_str;
public:
String(const char *buff);           //конструктор с параметром.
String(const String& p);           //конструктор копирования.
const String& operator = (const String& p);  //операция присваивания.
const String& operator = (const char *buff);  //операция присваивания.
virtual ~String();            //Деструктор.
unsigned int len();           //Длинна строки.
operator char*();             //преобразования к char *
operator const char*();       //преобразования к const char *
char& operator [](int index); //индексация.
};
//--------------------------------------------------------------
Файл String.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
#include <string.h>
#include "String.h"
//конструктор с параметром.
String::String(const char *buff){ ch_str = new char[strlen(buff)+1]; strcpy(ch_str,buff); }
//конструктор копирования.
String::String(const String& p){ ch_str = new char[strlen(p.ch_str)+1]; strcpy(ch_str,p.ch_str);}
//операция присваивания.
const String& String::operator = (const String& p){
if(&p==this)return *this;   
delete []ch_str;
ch_str = new char[strlen(p.ch_str)+1]; strcpy(ch_str,p.ch_str);
return *this;
}
//операция присваивания.
const String& String::operator = (const char *buff){    
delete []ch_str;
ch_str = new char[strlen(buff)+1]; strcpy(ch_str,buff);
return *this;
}
 
//Деструктор.
String::~String(){ delete[]ch_str;}
//Длинна строки.
unsigned int String::len(){return strlen(ch_str);}           
//преобразования к char *
String::operator char*(){return ch_str;}  
//преобразования к const char *          
String::operator const char*(){return ch_str;}    
char&String::operator [](int index){return ch_str[index];}
Файл main.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
#include <iostream>
#include "String.h"
using namespace std;
 
//клиентская часть.
int main(){
String obj = "Genius Ignat";
 
cout<<(const char*)obj<<endl;
String T_obj = obj;
unsigned int len = T_obj.len();
for(int i = 0 ; i < len; i++ )cout<<T_obj[i];
 
cout<<endl;
String UnkObj = "COM tech";
 
cout<<(const char*)UnkObj<<endl;
 
T_obj = UnkObj;
cout<<(const char*)T_obj<<endl;
T_obj ="End Sesion";
cout<<(const char*)T_obj<<endl;
 
return 0;
}
 
Текущее время: 15:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru