Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12

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

22.11.2012, 12:40. Показов 1255. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2012, 12:40
Ответы с готовыми решениями:

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

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

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

11
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
22.11.2012, 13:38
Лучше бы не объявлять структуру локально в классе, а вот экземпляр структуры нужно. Вообще, читайте и старайтесь следовать рекомендациям. Оригинальность не самоцель, особенно вначале.
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
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
22.11.2012, 13:52  [ТС]
Дело в том что , как вы написали я тоже уже делал. Но у меня задание сделать так как я написал код в начале! В этом то вся и проблема
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
22.11.2012, 14:12
Цитата Сообщение от Andreyz190 Посмотреть сообщение
Дело в том что , как вы написали я тоже уже делал. Но у меня задание сделать так как я написал код в начале! В этом то вся и проблема
Ваша проблема в другом. Нельзя обратиться к члену класса если его там нет. Вы объявили структуру в классе, но не создали экземпляра и не показали как его инициализировать. Потом Вы пытаетесь обратиться к тому чего не понимаете, то есть к типу данных, а не к его экземпляру. Если задание у Вас таково, во что верится с трудом, то это одна из проблем. Структура в cli, - тот же класс типа значения, но со спецификатором доступа public по умолчанию.
О том, что Вы уже делали, - посмотрите как пишется на C++/CLI public (с двоеточием после), так что, то о чём делали, лучше бы сказать, - я пишу на C#, но ошибся разделом. Тогда еще можно поверить, что компилировалось. Удачи.
0
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
22.11.2012, 14:32  [ТС]
Ладно скажу по другому! Метод Display должен вызываться только в Main !
При этом должно происходить увеличение значения полей X и Y структуры myPoint объявленной в методе Main. Увеличение происходит соответственно в функции Increment. Как мне это реализовать ?
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
22.11.2012, 14:48
Цитата Сообщение от Andreyz190 Посмотреть сообщение
Ладно скажу по другому! Метод Display должен вызываться только в Main !
А он, в предложенном коде, где вызывается?
Цитата Сообщение от Andreyz190 Посмотреть сообщение
При этом должно происходить увеличение значения полей X и Y структуры myPoint объявленной в методе Main. Увеличение происходит соответственно в функции Increment. Как мне это реализовать ?
Main это не метод, а функция. Если Вам нужно объявить структуру (не её экземпляр) в Main, то не нужно её объявлять во внешнем к Мain (глобальном) объявлении другого класса. Объявите в Main и пользуйте. А инкремент оформленный в виде функции вызывайте хоть прямо в Display(). Это может быть как метод структуры так и внешнияя функция (тогда экземпляр структуры передайте по ссылке или указатель на него передайте). Вообще, лучше выложите задание дословно.
0
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
22.11.2012, 15:43  [ТС]
Мне надо создать функцию 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
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
22.11.2012, 16:13
Не хотите дать задание дословно, - дело Ваше. Получать доступ к полям и методам класса из-вне, постановка странная. Дружественную функцию хотите на С++/CLI написать? Удачи.
0
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
23.11.2012, 13:51  [ТС]
Цитата Сообщение от IGPIGP Посмотреть сообщение
Не хотите дать задание дословно, - дело Ваше. Получать доступ к полям и методам класса из-вне, постановка странная. Дружественную функцию хотите на С++/CLI написать? Удачи.
Лучше чем-нибудь помогли бы. А не цетировали !

Добавлено через 9 минут
цитировали!
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
23.11.2012, 15:39
Andreyz190, а вы часом не в C# делаете? А то по коду очень похоже на C#...
1
0 / 0 / 0
Регистрация: 31.08.2012
Сообщений: 12
23.11.2012, 15:42  [ТС]
В С#. Блин точно, а почему написано на С++..
0
23.11.2012, 15:44
 Комментарий модератора 
Цитата Сообщение от Andreyz190 Посмотреть сообщение
а почему написано на С++
Потому, что вы тут тему создали. Данную тему я закрываю, аналогичная будет создана в разделе C#.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.11.2012, 15:44
Помогаю со студенческими работами здесь

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

Кириллица в консольном приложении C++
Приветствую вас, дорогие друзья. Подскажите пожалуйста, какой код нужно прописать в консольной программе, чтобы кодировку консоли с...

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

Графика в консольном приложении
Помогите создать приблизительно такую штуку, которая будет высвечиваться при запуске консольной программы, и по нажатию на любую клавишу...

Вывод в консольном приложении
Мне надо после 19 вернуться на прежнюю строку. Что бы после 19 числа начали выводиться вверх ( по спирали, и что бы ничего не стиралось )....


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

Или воспользуйтесь поиском по форуму:
12
Закрытая тема Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru