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

Переопределение тапа "class" - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Квадратное уравнение http://www.cyberforum.ru/cpp-beginners/thread676242.html
Здравствуйте! Это код квадратного уравнение. Компилируется все нормально. Но программа не выполняет поиск корней, если D>0 и D=0. Помогите найти ошибку. #include <cstdio> #include <cstdlib> #include <iostream> #include <math.h> #include "windows.h" using namespace std;
C++ Построение квадратного поля для морского боя Здравствуйте. Такой вопрос - Как сделать так чтобы поле для морского боя было не прямоугольное когда мы создаем массив 10*10 а квадратным? ********** *-----------* *-----------* *-----------* *-----------* *-----------* *-----------* *-----------* http://www.cyberforum.ru/cpp-beginners/thread676241.html
Очереди созданные посредством struct C++
Разбираюсь с очередями, хочу узнать как правильно использовать данные структуры в программе. Требуется помощь в реализации именно на структурах. Когда я запустил эту программу выскочило необработанное исключение ошибка при чтении и адреса. #include <iostream> using namespace std; struct node{ int d; node *next;
Определение наличия тупого угла в треугольнике C++
Параметрами функций являются длины сторон треугольника a, b, c. Дальше определяете, есть ли в треугольнике тупой угол, или все острые. Если есть - возвращаете 1, если нет - 0. Во второй функции проверяете неравенство треугольника. Если треугольник с заданными сторонами существует - возвращаете 1, если нет - 0. как это всё сделать в одной программе? Добавлено через 2 часа 46 минут вроде...
C++ Алгоритм Форда-Белмана http://www.cyberforum.ru/cpp-beginners/thread676232.html
Найти расстояние от фиксированной вершины до всех остальных вершин графа. Для задания любая матрица 5*5. Программа на языке С++.
C++ Алгоритм Флойда Оршала Найти наикратчайшее расстояние от каждой до каждой. Задание представляет собой любую матрицу 4*4. Программа на языке C++. подробнее

Показать сообщение отдельно
DJZT
 Аватар для DJZT
24 / 3 / 0
Регистрация: 21.12.2011
Сообщений: 151
22.10.2012, 14:48  [ТС]     Переопределение тапа "class"
Цитата Сообщение от nonedark2008 Посмотреть сообщение
xD. Когда ты создаешь переменную в функции CreateObj, то по ее завершению она сразу же удалится.
Здесь надо оперировать самим классом.
Сделай конструктор, который будет инициализировать твои поля.
Тогда при:
C++
1
CData1 obj(3, 2, 1);
Вызовется конструктор(который тебе нужно еще написать) и задаст полям в переменной obj значения 3, 2, 1.
Я написал конструктор. Но не могу понять, почему не вызывается функция CreateObj?
main
C++
1
2
3
4
5
6
7
8
9
10
11
#include "stdafx.h"
#include "CData1.h"
#include "CView.h"
 
int main(void)
{
    printf("Main is called!\n");
    int CreateObj();
    
    return 0;
}
Матюкается на еденичку в вызове
C++
1
CData1 obj1(1, 2, "DJZT", 4);
Говорит "отсутствуют экземпляры конструктора "CData1::CData1", соответствующие списку аргументов
типы аргументов: (int, int, const char [5], int)"
.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#pragma once
 
class CData1
{
public:
    CData1();
    CData1(int f1, int f2, char f3, int f4);
    ~CData1();
    int CreateObj();
    int field1_data1;
    int field2_data1;
    char field3_data1[32];
    int field4_data1;
};

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
#include "stdafx.h"
#include "CData1.h"
#include <iostream>
 
CData1::CData1(int f1, int f2, char f3, int f4)
{
    printf("Constructor is called!\n");
    field1_data1 = f1;
    field2_data1 = f2;
    //strcpy_s(field3_data1, 32, f3);
    field4_data1 = f4;
}
 
CData1::CData1()
{
    printf("Constructor is called!\n");
}
 
CData1::~CData1()
{
    printf("Destructor is called!\n");
}
 
int CData1::CreateObj()
{
    printf("CreateObj is Called!\n");
    CData1 obj1(1, 2, "DJZT", 4);
    printf("Created obj\n");
    void Screen(CData1 obj1);
    return 1;
}


Ваш вариант работает. правда там мусор выводится, но то другое. Я не могу его использовать - у меня чётко поставлена задача, что и где вызывать.
Цитата Сообщение от SergProgC++ Посмотреть сообщение
Опять в методе класса создаешь объект класса, у меня вот так работает
main.cpp
C++
1
2
3
4
5
6
7
8
9
10
#include "CView.h"
 
void main()
{
CData1 obj;
    CView obj2;
    obj2.Screen(obj);
    system("PAUSE");
 
}
Добавлено через 2 минуты
Проблему с единицой решил.
C++
1
CData1::CData1(int f1, int f2, char f3[32], int f4)
Всё равно не вызывается функция

Добавлено через 14 минут
Сделал вот такой main
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdafx.h"
#include "CData1.h"
#include "CView.h"
 
int main(void)
{
    printf("Main is called!\n");
    CData1 obj1(1, 2, "DJZT", 4);
    void Screen(CData1 obj1);
    //int CreateObj();
    
    return 0;
}
Но обж создаётся и сразу удаляется. Скрин не запускается(( Почепу так? Как сделать что бы обж сразу не удалялся? Ндо ли класс CView делать дружественным по отношению к CData1? В CView расположен метод Screen.
 
Текущее время: 12:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru