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

Как вернуть string в методе класса?

02.02.2019, 15:09. Показов 6284. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как корректно вернуть строковую переменную в методе класса getString() , чтобы при обращении к нему в другой функции, не возникало ошибки нарушения прав доступа при чтении по адресу?

Неправильный пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Str(){
   private:
      std::string text;
 
   public:
      Str(std::string TEXT){
         text = TEXT;
      }
 
      std::string getString(){
         return text;
      }
 
};
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2019, 15:09
Ответы с готовыми решениями:

Возможно ли как-то, зная имя класса, вернуть в каком-либо методе имя класса?
Добрый день! Интересуюсь. Есть Обобщенный метод, например: Add<T>(string nameElement). Какой конкретно Т определяется...

Приём константных векторов класса, как аргументов в методе другого класса
Есть такой класс: class Order { private: int numberOrder; map <string, int> catalogDish; double totalCost; public: ...

Как в методе класса вызвать другой метод того же класса?
class mate { public: int AplusB(int A, int B) { return A+B; } int AplusBplusC(int A, int B, int C)

44
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
02.02.2019, 15:16
Что за чтение по адресу? Речь про указатель?
0
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 102
02.02.2019, 15:25  [ТС]
При попытке обратиться к данному методу возникает ошибка: "Вызвано исключение по адресу 0x00007FFD3C3B1785 (vcruntime140d.dll) в Project3.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFFFFFFFFFFFFFFFF."

Пример, на основе программы выше:
C++
1
2
3
4
Str objectStr("tet");
 
if (str.getString() == "tet")
 std::cout << "yes";
Причём, если создать один метод, который возвращает строковую переменную, то программа запускается, но при создании второго метода, который тоже возращает строковую переменную, возникает ошибка выше.
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
02.02.2019, 15:36
kalambek, почему после имени класса скобки? И почему обращение идёт в примере использования к str, хотя объект сознан с именем objectStr?
Если это все убрать, то все работает у меня

Добавлено через 2 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Str{
   private:
      std::string text;
 
   public:
      Str(std::string TEXT){
         text = TEXT;
      }
 
      std::string getString(){
         return text;
      }
 
};
 
int main(){
Str objectStr("tet");
 
if (objectStr.getString() == "tet")
 std::cout << "yes";
 
}
1
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 102
02.02.2019, 15:44  [ТС]
ЗеХель, это мои описки здесь, к ошибке они не имеют отношения
0
24 / 21 / 3
Регистрация: 04.11.2014
Сообщений: 283
02.02.2019, 15:46
kalambek, я скинул исправленный вариант вашего кода в прошлом посте, видимо вы какие-то другие скобки убрали
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
02.02.2019, 16:35
Цитата Сообщение от kalambek Посмотреть сообщение
Неправильный пример
Этот пример правильный. Ошибка у вас где-то в другом месте. Показывайте весь код.
0
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 102
02.02.2019, 17:18  [ТС]
DrOffset, проблема по-видимому была в компиляторе (visual studio).
Я пишу объёмную программу, которую разбил на 8 файлов. К слову, к проекту подключена библиотека SFML.
В итоге я решил проблему так: создал новый проект, скопировав в него подчистую тот же самый код, который был в прошлом проекте и ошибка чудесным образом исчезла.
Во время работы над этим проектом я не раз сталкивался с ошибкой нарушения прав доступа, без видимых на то причин, как мне кажется. Но мне до этого времени удавалось её решить путём танца с бубном (я создавал ошибку в коде, запускал программу, она крашилась, потом убирал ошибку и программа начинала работать). Не пойму с чем это всё связано.
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
02.02.2019, 17:35
Цитата Сообщение от kalambek Посмотреть сообщение
проблема по-видимому была в компиляторе (visual studio).
Это вряд ли.

Цитата Сообщение от kalambek Посмотреть сообщение
Не пойму с чем это всё связано.
С тем, что в программе UB. Ошибка, которую вы не видите, и которая не всегда себя проявляет. Так что если только вы не считаете, что самообман - это лучший выход из всех проблем, то можно было и показать сообществу код, чтобы вам помогли найти ошибку.
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
02.02.2019, 17:37
Цитата Сообщение от kalambek Посмотреть сообщение
проблема по-видимому была в компиляторе (visual studio).
Проблема, по-видимому, осталась в наличии, судя по количеству "описок" в 20 строчках кода.

И на компилятор грешить зря не надо. Там есть определённые баги, но, на 99.9%, вам они не грозят. А что бы обнаружить новый баг в компиляторе - это должно очень сильно повезти. Так что ищите баги не в компиляторе, а в собственном коде и в настройках собственного проекта.
0
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 102
02.02.2019, 19:23  [ТС]
Думаю ошибка заключается в обработке динамического массива.
В первый раз я столкнулся с этой ошибкой, когда попытался что-то изменить в классе Object, причём чтобы я там не менял (допустим удалял не использующуюся переменную) в любом случае возникала ошибка.

main.cpp:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
//игра в жанре Point-and-click
#include <SFML/Graphics.hpp>
#include "windows.h"
#include <iostream>
#include <sstream>
#include <cmath>
 
#include "player.cpp" //класс героя
#include "objects.cpp" //класс подбираемых объектов 
#include "templatesFunctions.h" //заголовочный файл ф-ций
 
 
int main()
{
    sf::RenderWindow window(sf::VideoMode(1112, 840), "SFML works!");
 
    int numbersObjects = 4;
 
    Object *arrayObjects = new Object[numbersObjects];
    transferStuff(arrayObjects, numbersObjects); //переброс объектов в массив
 
    sf::Font font;
    font.loadFromFile("fonts/open-sans.ttf");
    sf::Text text("", font, 14); //создание текстового объекта 
    text.setFillColor(sf::Color::Red); 
 
    sf::Clock clock;
 
    Player hero; 
 
    float tempMousePosX = 0, tempMousePosY = 0;
    float moveTimer = 0;
 
    while (window.isOpen())
    {
 
        float time = clock.getElapsedTime().asSeconds();
        time = time * 5;
        clock.restart();
 
        sf::Vector2i pos = sf::Mouse::getPosition(window);
        sf::Vector2f mousePosition = window.mapPixelToCoords(pos);
 
 
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
 
            mouseClickLeft(event, hero, arrayObjects, mousePosition, numbersObjects, tempMousePosX, tempMousePosY); //события ЛКМ
        }
 
        mouseHover(mousePosition, arrayObjects, numbersObjects, text); //события при наведении мыши 
        movementDistance(hero, tempMousePosX, tempMousePosY, time); //расчёты движения персонажа 
        inter(hero, arrayObjects); //события достижения героем объектов 
 
        window.clear();
        for (int i = 0; i < numbersObjects; i++) window.draw(arrayObjects[i].objectInst);
        window.draw(hero.heroInst);
        window.draw(text);
        window.display();
    }
 
 
    delete[] arrayObjects;
    return 0;
}
templatesFunctions.h:
C++
1
2
3
4
void mouseClickLeft(sf::Event event, Player & hero, Object *arrayObjects, sf::Vector2f mousePosition, int & numbersObjects, float &tempMousePosX, float &tempMousePosY);
void mouseHover(sf::Vector2f mousePosition, Object *arrayObjects, int numbersObjects, sf::Text & text);
void transferStuff(Object *&oldArrayObjects, int numbersObjects);
void inter(Player & hero, Object *arrayObjects);

stuff.cpp:
C++
1
2
3
4
5
6
7
8
9
10
11
#include "objects.cpp"
 
 
Object tapeRed(25, 25, 500, 400, "tapeRed", "tape Red");
Object tapeGreen(25, 25, 70, 250, "tapeGreen", "tape Green");
Object tapeBlue(25, 25, 100, 100, "tape", "tape Blue");
Object tapeYellow(25, 25, 740, 350, "tapeYellow", "tape Yellow");
 
void transferStuff(Object *&arrayObjects, int numbersObjects) {
    arrayObjects = new Object[numbersObjects]{ tapeRed, tapeGreen, tapeBlue, tapeYellow };
}
Objects.cpp:
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
40
41
42
43
44
45
#include <SFML/Graphics.hpp>
 
 
class Object
{
private:
    float x = 500; float y = 10;
    int width; int height;
    sf::String text;
    sf::String id;
public:
    sf::Sprite objectInst;
    sf::Texture objectTexture;
    bool alive = true;
 
    Object(int WIDTH, int HEIGHT, int X, int Y, sf::String TEXTURE, sf::String TEXT) {
        x = X; y = Y;
        text = TEXT;
        id = TEXTURE;
        width = WIDTH; height = HEIGHT;
        objectTexture.loadFromFile("https://www.cyberforum.ru/images/" + TEXTURE + ".png");
        objectInst.setTexture(objectTexture);
        objectInst.setPosition(x, y);
 
    }
 
    Object() {
    }
 
 
    float getPositionX() { return x; }
 
    float getPositionY() { return y; }
 
    int getWidth() { return width; }
 
    int getHeight() { return height; }
 
    sf::String getId() { return id; }
 
    sf::String getText() { return text; }
 
    void DisposeObject() { delete this; }
 
};
mouseEvents.cpp:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <SFML/Graphics.hpp>
#include <iostream>
#include <sstream>
#include <cmath>
 
#include "windows.h"
#include "player.cpp"
#include "objects.cpp"
 
 
short int ofsMouse = 3; // offset After Mouse
short int ki = 0;
bool st = false;
 
 
void mouseClickLeft(sf::Event event, Player & hero, Object *arrayObjects, sf::Vector2f mousePosition, int &numbersObjects, float &tempMousePosX, float &tempMousePosY) {
    if (event.type == sf::Event::MouseButtonPressed)
        if (event.key.code == sf::Mouse::Left)
        {
            hero.isMove = true;
            tempMousePosX = mousePosition.x;
            tempMousePosY = mousePosition.y;
 
 
            for (int i = 0; i < numbersObjects; i++) {
                if ((mousePosition.x < arrayObjects[i].getPositionX() + arrayObjects[i].getWidth()) & (mousePosition.x > arrayObjects[i].getPositionX()) &
                    (mousePosition.y < arrayObjects[i].getPositionY() + arrayObjects[i].getHeight()) & (mousePosition.y > arrayObjects[i].getPositionY())) {
 
                    tempMousePosX = arrayObjects[i].getPositionX();
                    tempMousePosY = arrayObjects[i].getPositionY();
                    st = true;
                    ki = i;
                }
            }
        }
}
 
 
void inter(Player & hero, Object *arrayObjects) {
    if ((hero.isMove == false) & (st == true)) {
        if (arrayObjects[ki].getId() == "tapeRed") {
            std::cout << "message" << std::endl;
            st = false;
        }   
    }
}
 
 
void mouseHover(sf::Vector2f mousePosition, Object *arrayObjects, int numbersObjects, sf::Text & text) {
    for (int i = 0; i < numbersObjects; i++)
        if ((mousePosition.x > arrayObjects[i].getPositionX()) & ((mousePosition.x) < (arrayObjects[i].getPositionX() + arrayObjects[i].getWidth())) &
            (mousePosition.y > arrayObjects[i].getPositionY()) & ((mousePosition.y) < (arrayObjects[i].getPositionY() + arrayObjects[i].getHeight()))) {
 
            text.setString(arrayObjects[i].getText());
            break;
        }
        else {
            text.setString("");
        }
}
interaction.cpp:
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
#include <iostream>
#include <sstream>
#include <cmath>
 
#include "player.cpp"
#include "windows.h"
#include "objects.cpp"
 
 
int k = 0;
 
void deleteObjects(Player hero, Object * arrayObjects, sf::Vector2f mousePosition, int &numbersObjects) {
    const int selDis = 70; //select Distance
 
    for (int i = 0; i < numbersObjects; i++) {
        if ((hero.getPositionX() + hero.getWidth() + selDis > arrayObjects[i].getPositionX()) &
            (hero.getPositionX() < arrayObjects[i].getPositionX() + arrayObjects[i].getWidth() + selDis))
            if ((mousePosition.x < arrayObjects[i].getPositionX() + arrayObjects[i].getWidth()) & (mousePosition.x > arrayObjects[i].getPositionX()) &
                (mousePosition.y < arrayObjects[i].getPositionY() + arrayObjects[i].getHeight()) & (mousePosition.y > arrayObjects[i].getPositionY()))
            {
                k++;
                for (int k = i; k < (numbersObjects - 1); k++) {
                    arrayObjects[k] = arrayObjects[k + 1];
                }
                numbersObjects--;
            }
    }
}
Добавлено через 6 минут
возникает исключение в 59 строчке файла main.cpp: Вызвано исключение по адресу 0x00007FFD1370B2A6 (sfml-graphics-d-2.dll) в pallium.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFFFFFFFFFFFFFFFF.
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
02.02.2019, 19:53
К ошибке это, скорее всего, не имеет отношения, но зачем в main, в 19 строке, память выделяешь, если в следующей строке, в функции transferStuff(), она будет перевыделена? Утечка, однако.
1
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 102
02.02.2019, 20:03  [ТС]
nd2, замечание хорошее, но ошибка осталась
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
02.02.2019, 20:09
Загрузку текстур почему не проверяешь?
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
02.02.2019, 20:17
Лучший ответ Сообщение было отмечено kalambek как решение

Решение

kalambek, т.к. код не весь, ошибки будем находить по частям.

Цитата Сообщение от kalambek Посмотреть сообщение
C++
1
2
    Object *arrayObjects = new Object[numbersObjects];
    transferStuff(arrayObjects, numbersObjects); //переброс объектов в массив
Тут у вас утечка памяти. Первоначальное значение указателя arrayObjects теряется, т.к. затирается присваиванием внутри функции transferStuff. Надо либо сделать так:
C++
1
2
    Object *arrayObjects = nullptr;
    transferStuff(arrayObjects, numbersObjects);
либо вообще как-то переделать этот код в более безопасный вариант (например с использованием std::vector), а то количество элементов задается извне, а функция всегда инициализирует нормально только 4.

По поводу падения, я вашу ошибку нашел.
У вас Object не имеет корректного для такого использования конструктора копирования.
Посмотрите на документацию функции sf::Sprite::setTexture:
The texture argument refers to a texture that must exist as long as the sprite uses it. Indeed, the sprite doesn't store its own copy of the texture, but rather keeps a pointer to the one that you passed to this function. If the source texture is destroyed and the sprite tries to use it, the behavior is undefined. If resetRect is true, the TextureRect property of the sprite is automatically adjusted to the size of the new texture. If it is false, the texture rect is left unchanged.
Т.е. если использовать конструктор копирования по умолчанию, новый, скопированный объект Sprite будет содержать ссылку на экземпляр из источника, который может быть уже уничтожен (битая ссылка).
В общем к классу Object добавьте конструктор копирования:
C++
1
2
3
4
5
6
7
8
9
    Object(Object const & other)
        : x(other.x), y(other.y)
        , width(other.width), height(other.height)
        , text(other.text), id(other.id)
        , objectTexture(other.objectTexture)
    {
        objectInst.setTexture(objectTexture);
        objectInst.setPosition(x, y);
    }
И оператор присваивания:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    Object & operator=(Object const & other)
    {
        if(this != &other)
        {
            x = other.x;
            y = other.y;
            width = other.width;
            height = other.height;
            text = other.text;
            id = other.id;
            objectTexture = other.objectTexture;
 
            objectInst.setTexture(objectTexture);
            objectInst.setPosition(x, y);
        }
        return *this;
    }
Возможно есть еще ошибки, лучше бы вы дали полный код в архиве.
1
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 102
02.02.2019, 21:05  [ТС]
DrOffset, спасибо вам большое за развёрнутый ответ. Правда я не совсем понимаю, как использовать данные конструкторы.


Цитата Сообщение от DrOffset Посмотреть сообщение
Возможно есть еще ошибки, лучше бы вы дали полный код в архиве.
Остался всего один существенный файл:
Player.cpp:
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
#include <SFML/Graphics.hpp>
#include <iostream>
 
 
class Player
{
private:
    float x = 300;
    float y = 200;
    int width = 72;
    int height = 126;
    float speed = 50;
    float staticX;
    std::string direction;
    sf::Texture heroTexture;
    bool stop = false;
 
public:
    sf::Sprite heroInst;
    bool isMove = false;
 
    Player() {
        heroTexture.loadFromFile("https://www.cyberforum.ru/images/hero.png");
        heroInst.setTexture(heroTexture);
        heroInst.setScale(3, 3);
        heroInst.setPosition(x, y);
    }
 
 
    int getPositionX() { return x; }
 
    int getIntPositionX() { return x; }
 
    float getPositionY() { return y; }
 
    int getWidth() { return width; }
 
    int getHeight() { return height; }
 
    void setDirection(std::string DIR) { direction = DIR; }
 
    void move(float time, int tempX, int tempY, int distance)
    {
        if (direction == "right") {
            x += speed * time*(tempX - x - width) / distance;
            y += speed * time*(tempY - y - height) / distance;
        }
 
        if (direction == "left") {
            x += speed * time*(tempX - x) / distance;
            y += speed * time*(tempY - y - height) / distance;
        }
    }
};
 
 
inline void movementDistance(Player & hero, float tempMousePosX, float tempMousePosY, float time) {
    int distance = 0;
 
    if (hero.isMove)
    {
        if (tempMousePosX > hero.getPositionX()) {
            distance = sqrt((tempMousePosX - hero.getPositionX() - hero.getWidth()) * (tempMousePosX - hero.getPositionX() - hero.getWidth()) +
                (tempMousePosY - hero.getPositionY() - hero.getHeight()) * (tempMousePosY - hero.getPositionY() - hero.getHeight()));
            hero.setDirection("right");
            hero.heroInst.setScale(3, 3);
            hero.heroInst.setPosition(hero.getPositionX(), hero.getPositionY());
        }
 
        if (tempMousePosX < hero.getPositionX() + hero.getWidth() / 2) {
            distance = sqrt((tempMousePosX - hero.getPositionX()) * (tempMousePosX - hero.getPositionX()) +
                (tempMousePosY - hero.getPositionY() - hero.getHeight()) * (tempMousePosY - hero.getPositionY() - hero.getHeight()));
            hero.setDirection("left");
            hero.heroInst.setScale(-3, 3);
            hero.heroInst.setPosition(hero.getPositionX() + hero.getWidth(), hero.getPositionY());
        }
 
        if (distance > 1)
        {
            hero.move(time, tempMousePosX, tempMousePosY, distance);
            std::cout << distance << std::endl;
        }
 
        if (distance == 1)
            hero.isMove = false;
    }
}
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
02.02.2019, 21:17
Цитата Сообщение от kalambek Посмотреть сообщение
я не совсем понимаю, как использовать данные конструкторы.
Они будут автоматически использованы.

Добавлено через 2 минуты
Например, здесь:
Цитата Сообщение от kalambek Посмотреть сообщение
C++
1
arrayObjects = new Object[numbersObjects]{ tapeRed, tapeGreen, tapeBlue, tapeYellow };
1
0 / 0 / 0
Регистрация: 07.04.2015
Сообщений: 102
02.02.2019, 22:13  [ТС]
nd2, если просто вставить эти конструкторы в класс, то ошибка не пропадает.
Потому что в этом месте:
Цитата Сообщение от kalambek Посмотреть сообщение
Object *arrayObjects = new Object[numbersObjects];
используется данный конструктор:
Цитата Сообщение от kalambek Посмотреть сообщение
Object() {
}
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
02.02.2019, 23:50
Цитата Сообщение от kalambek Посмотреть сообщение
Потому
Не потому, здесь один конструктор другому не мешает. Ошибка может быть и в другом месте.

Добавлено через 4 минуты
Цитата Сообщение от kalambek Посмотреть сообщение
Object *arrayObjects = new Object[numbersObjects];
Это в main()? Тебе уже написали, что это нужно убрать.

Добавлено через 59 секунд
...
Цитата Сообщение от DrOffset Посмотреть сообщение
C++
1
2
Object *arrayObjects = nullptr; 
transferStuff(arrayObjects, numbersObjects);
1
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
02.02.2019, 23:51
Цитата Сообщение от kalambek Посмотреть сообщение
если просто вставить эти конструкторы в класс, то ошибка не пропадает.
Значит дело еще в чем-то. Тем не менее, это не значит, что исправления эти не нужны.

Все-таки сбросьте весь проект в архиве. Вместе с файлами проекта VS.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.02.2019, 23:51
Помогаю со студенческими работами здесь

Как вызвать метод вложенного класса в методе родительского класса
Имеется родительский класс для прорисовки графики Jogj package objects; import com.jogamp.opengl.GL2; import...

Как вызвать метод класса в другом методе этого же класса?
&lt;? class load_files{ public function traverse_hierarchy($path) { // from...

Использование метода класса как функции в качестве типизированного аргумента в методе класса
Использование метода класса как функции в качестве типизированного аргумента в методе класса C++: как правильно использовать метод ...

Как правильно создать массив объектов текущего класса в методе данного класса?
Привет! Ставится задача создания метода, который формирует массив объектов. Правильно ли делать этот метод внутри класса, экземпляром...

Как вернуть двум неициализированным переменным индекс массива, в методе?
Задание: Напишите программу со статическим методом, аргументом которому передается двумерный целочисленный массив. У метода, кроме...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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 - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru