Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2

Что не так с этим кодом?

19.02.2014, 14:46. Показов 1668. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Что не так с этим кодом?
C++
#include <stdio.h>
 
struct Texture
{
    unsigned int tex;
 
    Texture() { tex = 0; }
};
 
int main()
{
    Texture texture;
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2014, 14:46
Ответы с готовыми решениями:

Что не так с этим кодом?
Код должен производить pacчeт траектории движeния капель щелока в excel. В vba к сожалению практически ничего не понимаю. Dim...

Что не так с этим кодом ?
В PyCharm все работает, а если из командной строки python-e файл давать, то ошибку выдает ! from selenium import webdriver ...

Что не так с этим кодом? Массивы
Подскажите, пожалуйста, что здесь неправильно. Дан массив из 20 элементов. Массив заполняется с клавиатуры. Вывести массив на экран....

11
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
19.02.2014, 14:48
А что с ним не так?
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
19.02.2014, 14:51  [ТС]
Цитата Сообщение от Тамика Посмотреть сообщение
А что с ним не так?
А Скот Маерс ругается на этот код.

Добавлено через 2 минуты
Вот что он пишет:
Цитата Сообщение от Scott Meyers
warning: ‘Texture::tex’ should be initialized in the member initialization list
Только не понятно почему от так считает.
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
19.02.2014, 14:52
Цитата Сообщение от programina Посмотреть сообщение
Texture(): tex(0){}
Да и неплохо бы сделать переменную tex приватной. А для получения tex - константную GetTex();
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
19.02.2014, 14:55  [ТС]
Цитата Сообщение от Тамика Посмотреть сообщение
Texture(): tex(0){}
Texture() { tex = 0; }
А какая между ними разница? ))
0
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
19.02.2014, 14:57
Переменна будет инициализирована до начала тела конструктора. Это не критично в данном случае. Но лучше делать так.
1
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2224 / 1426 / 420
Регистрация: 16.05.2013
Сообщений: 3,649
Записей в блоге: 6
19.02.2014, 14:59
Тошо не следует выполнять определение переменных внутри тела конструктора. Лучше пользоваться строкой инициализации.
Цитата Сообщение от programina Посмотреть сообщение
А какая между ними разница? ))
Дело в том, что строка инициализации вызывает конструкторы для соответствующих полей класса, а определение в теле конструктора вызывает оператор присваивания. Таким образом вы дважды определяете поля класса сперва конструкторами по умолчанию затем оператором присваивания.
1
 Аватар для programina
2062 / 619 / 41
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
19.02.2014, 15:07  [ТС]
Цитата Сообщение от Ilot Посмотреть сообщение
Тошо не следует выполнять определение переменных внутри тела конструктора
для чего же тогда нужен конструктор если не для инициализации переменных?

Вобщем Скот Маерс идет лесом, я отключаю его опцию -Weffc++.
0
Эксперт по математике/физикеЭксперт С++
 Аватар для Ilot
2224 / 1426 / 420
Регистрация: 16.05.2013
Сообщений: 3,649
Записей в блоге: 6
19.02.2014, 15:15
Цитата Сообщение от programina Посмотреть сообщение
для чего же тогда нужен конструктор если не для инициализации переменных?
Вы должно быть не до конца поняли. При определении полей класса в теле конструктора сперва будут созданны эти переменные конструкторами по умолчанию, а затем им будет присвоено значение из тела конструктора. Если пользоваться строкой инициализации то для полей класса будут вызванны соответствующие конструкторы которые создадут переменные полей класса.
Попробуйте запустить два констуктора для В:
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
#include<iostream>
using namespace std;
class A {
    int a;
public:
    A(): a()
    {
        cout << "Конструктор по умолчанию A()\n";
    }
    A(int _a): a(_a)
    {
        cout << "Конструктор A(int a)\n";
    }
    A& operator= (A& _a)
    {
        a = _a.a;
        cout << "Оператор присваения\n";
        return *this;
    }
};
class B
{
    A a_in_B;
public:
    B(A a)
    {
        a_in_B = a;
    }
    //B(A a): a_in_B(a) {}
};
int main() {
    system("chcp 1251>0");
    A a(10);
    B b(a);
    system("pause");
    return 0;
}
1
Котовчанин
942 / 482 / 200
Регистрация: 16.02.2010
Сообщений: 3,338
Записей в блоге: 35
19.02.2014, 15:31
Таким образом вы дважды определяете поля класса сперва конструкторами по умолчанию затем оператором присваивания.
будут созданны эти переменные конструкторами по умолчанию
В данном случае поле tex встроенного типа в отсутствии списка инициализации инициализировано не будет (в отличии от пользовательских классов) и будет иметь неопределённое значение. По этому здесь оба случая (список инициализации или тело конструктора) полностью эквивалентны.
1
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
19.02.2014, 16:44
Цитата Сообщение от programina Посмотреть сообщение
Вобщем Скот Маерс идет лесом, я отключаю его опцию -Weffc++.
Лучше почитать его книжки перед тем, как включать эту опцию
1
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
19.02.2014, 16:51
Лучший ответ Сообщение было отмечено programina как решение

Решение

Цитата Сообщение от programina Посмотреть сообщение
Только не понятно почему от так считает.
Это результат неверного исполнения гайдлайна из Effective C++. Конкретно, это баг №16166 компилятора GCC http://gcc.gnu.org/bugzilla/sh... d=16166#c3
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2014, 16:51
Помогаю со студенческими работами здесь

Сериализация: что не так с этим кодом?
В курсе Байдачного http://www.microsoftvirtualacademy.com/training-courses/csharp_part_2 в 17 уроке приводится такой код. У автора...

Что не так с этим кодом? В чем его ошибка?
public class CustomMath { public static int multiply(int a, string b) { return a * b; } }

IndexError: list index out of range Что не так с этим кодом
sum = &quot;&quot; a = n = len(a) x,y = 0,0 for i in range(n): x = i-1 y = i+1 print(a + a)

Что не так с кодом? ( пытаюсь понять, что не так? )
Есть исходный код. Hook, работает хорошо, но есть минус огромный - перестаёт писать в лог, при открытии программы\игры Фуллскрином. т.е...

Что не так с этим ЧПУ
подскажите пожалуйста, не могу разобраться. Правильно ли я делаю замену урлов? (У меня стоит Денвер) Ввожу в адресной строке: ...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru