Перейти к содержимому

Как обратиться к переменной из другого класса c

  • автор:

Вызвать переменную из другого класса

Всем доброго. Пытаюсь программировать на С#, но уперся уже несколько дней — не могу вызвать переменную из другого («а») из другого класса («Class1′).

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 < class Program < static void Main(string[] args) < new Class1(); double b = Class1.a; Console.WriteLine("a = ", b); while (true) < try < string command = Console.ReadLine(); if (command == "stop") < break; >> catch (System.Runtime.InteropServices.COMException) < >> > > > 

Класс, от которого надо взять значение переменной «а» максимально упрощен

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 < public class Class1 < public double a = 179; >>

Пробовал гуглить, яндексить и т. д. — не помогло.

Как использовать переменную из одного класса в другом с помощью указателей?

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

У меня такая проблема.
Мне надо создать два класса и третьим классом этими двумя классами управлять. Но у меня ни чего не получается.
Вот пример.

class car
privat:
int KmReport
public
void setKmReport()
getKmReport(void)
>;

class Drive
public:
int drive_length(* Car);
>;

Вот у нас есть класс Car и в ней в private есть переменная KmReport (то есть сколько км машина проехала). C помощью get и set я добираюсь до этой переменной.

Класс drive своего рода управляющий. То есть при введение drive_length через cin я должен изменить проеденный путь в классе Car.
1. Вопрос должен быть class drive , friend class?

void Auto::setKmReport()
KmReport =0 // машина не сколько не проехала первоначально
>

Auto::getKmReport(void)
return KmReport;
>

// с этого момента я не увер что я делаю.
int Drive::drive_length(*Car)
int value;
cout cin >> value;

// если это вообще правильно(все выше стоящие)
>

Почему функция не видит public переменную из другого класса?

Всем доброго дня! Скажите пожалуйста почему функция не видит public переменную из другого класса?

//все нужные include тут прописаны просто я их скрыл class Window < private: int windowWidth, windowHeight; float windowWidthPROJ, windowHeightPROJ; void setContextCurrent(); public: GLFWwindow* mWindow; Window(const std::string& title, int width, int height); glm::mat4 view; void loop(); ~Window(); >;
#include #include #include #include #include #include #include "Camera.h" #include "Window.h" void Camera::moveCamera() < if ( glfwGetKey(mWindow, GLFW_KEY_W)) < //тут выскаивает что идентификатор mWindow не определен position += cameraFront * 0.01f; >view = glm::lookAt(position, position + cameraFront, cameraUp); return glm::mat4(view); >
  • Вопрос задан более двух лет назад
  • 420 просмотров

Комментировать
Решения вопроса 1
Николай @romancelover
программист C++ под Linux

mWindow определён в классе Window, а обращаются к нему в другом классе Camera, в котором члена mWindow нет. Как компилятор узнает о связи между классами Camera и Window, чтобы один использовал члены другого?
Можно обратиться к нему в том случае, если Camera будет наследником Window (но в данной ситуации это скорее всего не нужно), или в Camera будет член типа Window или указатель на него (Window* _window) тогда _window->mWindow будет допустимо.

Ответ написан более двух лет назад
Комментировать
Нравится 1 Комментировать
Ответы на вопрос 3

Adamos

Философы древности собирали своих учеников и беседовали, позволяя им задавать вопросы и тем приобретать мудрость.
Но С++ учится не так.

Как вызвать переменную или метод другого класса через строку?

У меня есть множество классов (Страны) с одинаковыми названиями переменных. И есть другой класс который выводит информацию об этих классах. Сейчас пользуюсь таким методом: При вызове инфо класса страна передает ему свое имя через строку а в инфо классе уже делаю.

void Info(string Country) < if(Country == "Italy")< Text.text = Italy.NameOfVariable; >else if(Country == "Russia") < Text.text = Russia.NameOfVariable; >>

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

  • Вопрос задан более трёх лет назад
  • 2656 просмотров

Комментировать
Решения вопроса 1

MrMureno

Denis Gaydak @MrMureno Куратор тега Unity
VR for all

ответьте почему у вас множество классов, а не один класс Country, на основе которого сделали себе объект для России и Италии и так далее?
у них у всех будет одинаковые переменные..

public class Country < public string Name; //и другие нужные поля под страну >/////////// //создаем себе объект класса Country russia = new Country(); russia.Name = "Russia"; ////////// //и вот собственно во все инфо и подобное отдаете объект класса Country //в котором все содержиться void Info(Country currentCountry)

конечно еще есть struct вместо класса. и про наследование можно поговорить если будет что то уникальное для каких-то стран.
но вам еще видимо рано такое..

но в общем то, если сильно все упростить, вы просто не использовали ООП — создав на каждую страну свой собственный класс.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *