Вызвать переменную из другого класса
Всем доброго. Пытаюсь программировать на С#, но уперся уже несколько дней — не могу вызвать переменную из другого («а») из другого класса («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

Философы древности собирали своих учеников и беседовали, позволяя им задавать вопросы и тем приобретать мудрость.
Но С++ учится не так.
Как вызвать переменную или метод другого класса через строку?
У меня есть множество классов (Страны) с одинаковыми названиями переменных. И есть другой класс который выводит информацию об этих классах. Сейчас пользуюсь таким методом: При вызове инфо класса страна передает ему свое имя через строку а в инфо классе уже делаю.
void Info(string Country) < if(Country == "Italy")< Text.text = Italy.NameOfVariable; >else if(Country == "Russia") < Text.text = Russia.NameOfVariable; >>
Но так как классов много будет очень много лишнего кода, скажите как можно использовать универсальный метод чтобы брать переменную, если это возможно, может быть и не через строку.
- Вопрос задан более трёх лет назад
- 2656 просмотров
Комментировать
Решения вопроса 1

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 вместо класса. и про наследование можно поговорить если будет что то уникальное для каких-то стран.
но вам еще видимо рано такое..
но в общем то, если сильно все упростить, вы просто не использовали ООП — создав на каждую страну свой собственный класс.