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

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

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

Ошибка в консольном приложении - C++

22.11.2012, 12:40. Просмотров 544. Ответов 11
Метки нет (Все метки)

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
{
    class Program
    {
        public struct Point
        {
            public int X;
            public int Y;
 
            public void Method()
            {
                X++; Y++;
            }
 
            public void Display()
            {
                Console.WriteLine("X = {0}, Y = {1}", X, Y);
            }
        }
        public static void Main(string[] args)
        {
            Point myPoint;
            myPoint.X = 10;
            myPoint.Y = 20;
            myPoint.Display();
            Console.ReadLine();
 
            
            Increment(ref myPoint);
//Здесь мне нужно вызвать из структуры - "Display" , для уже нового значения в функции Increment!
 
            Console.ReadLine();
        }
        public static void Increment(ref Point myPoint)
        {//Как мне тут вызвать "Method" из структуры !!!-использую ref модификатор
 
 
        }    
    }
}
Заранее, спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2012, 12:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка в консольном приложении (C++):

Логическая ошибка в консольном приложении - C++
На рисунке изображен результат выполнения программы, которая должна определять, не превышен ли предел кредита. Все переменные, кроме, той...

Ошибка в консольном приложении при подключении MFC? - C++
Здорова! Создал консольное приложение и в него добавил код: #include <iostream> using std::cout; using std::endl; #include...

Графика в консольном приложении VS - C++
подскажите как построить систему координат X,Y. в консольном приложении.Какие модули следует подключать и порядок ввода вывода линий и...

Таймер в консольном приложении - C++
Всем доброго времени суток, у меня вопрос, как сделать так, чтобы программа записывала текст в файл, а, к примеру через 40 минут стирала...

Таблица в консольном приложении - C++
Здравствуйте. Помогите пожалуйста советом, как организовать таблицу в консольном приложении? Таблица состоит из n строк и 2 столбцов.

CAsyncSocket в консольном приложении - C++
Пишу простейшие приложения (сервер, клиент) с использованием CAsyncSocket. Проблема в том, что callback функции не вызываются в консольном...

11
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
22.11.2012, 13:38 #2
Лучше бы не объявлять структуру локально в классе, а вот экземпляр структуры нужно. Вообще, читайте и старайтесь следовать рекомендациям. Оригинальность не самоцель, особенно вначале.
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
// Cli_consol.cpp: главный файл проекта.
#include "stdafx.h"
using namespace System;
class MProgram
{
public: 
struct MPoint
{
public:
    int X;
    int Y;
MPoint(){X=0;Y=0;}
void mMethod()
{
X++; Y++;
}
void Display()
{
Console::WriteLine("X = {0}, Y = {1}", X, Y);
}
};
MPoint mP;
MProgram(){mP=MPoint();}
};
int main(array<System::String ^> ^args)
{
MProgram prg=MProgram();
 
prg.mP.X=10;
prg.mP.Y=20;
prg.mP.mMethod();
prg.mP.Display();
Console::ReadLine();
return 0;
}
1
Andreyz190
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
22.11.2012, 13:52  [ТС] #3
Дело в том что , как вы написали я тоже уже делал. Но у меня задание сделать так как я написал код в начале! В этом то вся и проблема
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
22.11.2012, 14:12 #4
Цитата Сообщение от Andreyz190 Посмотреть сообщение
Дело в том что , как вы написали я тоже уже делал. Но у меня задание сделать так как я написал код в начале! В этом то вся и проблема
Ваша проблема в другом. Нельзя обратиться к члену класса если его там нет. Вы объявили структуру в классе, но не создали экземпляра и не показали как его инициализировать. Потом Вы пытаетесь обратиться к тому чего не понимаете, то есть к типу данных, а не к его экземпляру. Если задание у Вас таково, во что верится с трудом, то это одна из проблем. Структура в cli, - тот же класс типа значения, но со спецификатором доступа public по умолчанию.
О том, что Вы уже делали, - посмотрите как пишется на C++/CLI public (с двоеточием после), так что, то о чём делали, лучше бы сказать, - я пишу на C#, но ошибся разделом. Тогда еще можно поверить, что компилировалось. Удачи.
0
Andreyz190
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
22.11.2012, 14:32  [ТС] #5
Ладно скажу по другому! Метод Display должен вызываться только в Main !
При этом должно происходить увеличение значения полей X и Y структуры myPoint объявленной в методе Main. Увеличение происходит соответственно в функции Increment. Как мне это реализовать ?
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
22.11.2012, 14:48 #6
Цитата Сообщение от Andreyz190 Посмотреть сообщение
Ладно скажу по другому! Метод Display должен вызываться только в Main !
А он, в предложенном коде, где вызывается?
Цитата Сообщение от Andreyz190 Посмотреть сообщение
При этом должно происходить увеличение значения полей X и Y структуры myPoint объявленной в методе Main. Увеличение происходит соответственно в функции Increment. Как мне это реализовать ?
Main это не метод, а функция. Если Вам нужно объявить структуру (не её экземпляр) в Main, то не нужно её объявлять во внешнем к Мain (глобальном) объявлении другого класса. Объявите в Main и пользуйте. А инкремент оформленный в виде функции вызывайте хоть прямо в Display(). Это может быть как метод структуры так и внешнияя функция (тогда экземпляр структуры передайте по ссылке или указатель на него передайте). Вообще, лучше выложите задание дословно.
0
Andreyz190
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
22.11.2012, 15:43  [ТС] #7
Мне надо создать функцию Increment в которой я буду вызывать Method. новое значение полученное после Method мне надо вывести на экран (т.е. указать на уже заранее объявленный Display), но сделать мне это надо не!!!! в функции Increment , а в Main - после того как я обьявлю функцию Increment.

Добавлено через 9 минут
Цитата Сообщение от Andreyz190 Посмотреть сообщение
Мне надо создать функцию Increment в которой я буду вызывать Method. новое значение полученное после Method мне надо вывести на экран (т.е. указать на уже заранее объявленный Display), но сделать мне это надо не!!!! в функции Increment , а в Main - после того как я обьявлю функцию Increment.
Метод Display в main вызывается для первоначальных значений Х и У , а мне надо еще для значений полученных после функции Increment!!!

Добавлено через 28 секунд
Цитата Сообщение от Andreyz190 Посмотреть сообщение
Мне надо создать функцию Increment в которой я буду вызывать Method. новое значение полученное после Method мне надо вывести на экран (т.е. указать на уже заранее объявленный Display), но сделать мне это надо не!!!! в функции Increment , а в Main - после того как я обьявлю функцию Increment.
Метод Display в main вызывается для первоначальных значений Х и У , а мне надо еще для значений полученных после функции Increment!!!
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
22.11.2012, 16:13 #8
Не хотите дать задание дословно, - дело Ваше. Получать доступ к полям и методам класса из-вне, постановка странная. Дружественную функцию хотите на С++/CLI написать? Удачи.
0
Andreyz190
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
23.11.2012, 13:51  [ТС] #9
Цитата Сообщение от IGPIGP Посмотреть сообщение
Не хотите дать задание дословно, - дело Ваше. Получать доступ к полям и методам класса из-вне, постановка странная. Дружественную функцию хотите на С++/CLI написать? Удачи.
Лучше чем-нибудь помогли бы. А не цетировали !

Добавлено через 9 минут
цитировали!
0
HighPredator
5544 / 1857 / 346
Регистрация: 10.12.2010
Сообщений: 5,479
Записей в блоге: 2
23.11.2012, 15:39 #10
Andreyz190, а вы часом не в C# делаете? А то по коду очень похоже на C#...
1
Andreyz190
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
23.11.2012, 15:42  [ТС] #11
В С#. Блин точно, а почему написано на С++..
0
HighPredator
23.11.2012, 15:44     Ошибка в консольном приложении
  #12
 Комментарий модератора 
Цитата Сообщение от Andreyz190 Посмотреть сообщение
а почему написано на С++
Потому, что вы тут тему создали. Данную тему я закрываю, аналогичная будет создана в разделе C#.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 15:44
Привет! Вот еще темы с ответами:

Меню в консольном приложении - C++
есть ошибки не могу исправить #include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; using namespace std; ...

Вывод в консольном приложении - C++
Всем доброго времени суток. Написал приложение выводящие через printf 5 строк с паузой в 1 сек. При обычном запуске всё работает хорошо....

WxWidgets - в консольном приложении - C++
Начал изучение библиотек wxWidgets в Code Blocks, столкнулся с проблемой компиляции, вроде все подключено,просто строку в консоль выводит а...

Timer в консольном приложении - C++
Доброе время суток! Подскажите пожалуйста, как в консольном приложении создать таймер, который бы срабатывал каждые n минут или в...


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

Или воспользуйтесь поиском по форуму:
12
23.11.2012, 15:44
Закрытая тема Создать тему
Опции темы

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