Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
#1

Не работает создание обьекта - C++

01.03.2014, 14:57. Просмотров 348. Ответов 10
Метки нет (Все метки)

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
#include <stdio.h>
 
struct Point
{
    float x, y, z;
 
    Point(float _x, float _y, float _z)
    {
        x = _x;
        y = _y;
        z = _z;
    }
};
 
struct Vec2
{
    Point p1( 150.0f, 0.0f, 150.0f );
};
 
int main()
{
    Vec2 v;
 
    printf("%3.1f %3.1f %3.1f\n", v.p1.x, v.p1.y, v.p1.z);
}
Цитата Сообщение от MinGW
m.cpp:17:12: error: expected identifier before numeric constant
Цитата Сообщение от VC++
error C2059: синтаксическая ошибка: константа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
0x10
2451 / 1623 / 238
Регистрация: 24.11.2012
Сообщений: 3,993
01.03.2014, 15:01     Не работает создание обьекта #2
Это что за синтаксис такой?
Для Vec2 напишите конструктор по умолчанию, и в нем инициализируйте p1.
gray_fox
What a waste!
 Аватар для gray_fox
1253 / 1136 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
01.03.2014, 15:04     Не работает создание обьекта #3
Цитата Сообщение от programina Посмотреть сообщение
C++
1
Point p1( 150.0f, 0.0f, 150.0f );
C++
1
Point p1 { 150.0f, 0.0f, 150.0f };
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
01.03.2014, 15:09  [ТС]     Не работает создание обьекта #4
Цитата Сообщение от gray_fox Посмотреть сообщение
Point p1 { 150.0f, 0.0f, 150.0f };
gray_fox, это не работает в студии.
zss
Модератор
Эксперт С++
 Аватар для zss
6124 / 5727 / 1852
Регистрация: 18.12.2011
Сообщений: 14,638
Завершенные тесты: 1
01.03.2014, 15:15     Не работает создание обьекта #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
struct Point
{
    float x, y, z;
     Point(float _x=0, float _y=0, float _z=0)
    {
        x = _x;
        y = _y;
        z = _z;
    }
};
struct Vec2
{
    Point p1;
    Vec2(){p1.x=150.0f;p1.y=0.0f;p1.z=150.0f;}
};
 
int main()
{
    Vec2 v;
    printf("%3.1f %3.1f %3.1f\n", v.p1.x, v.p1.y, v.p1.z);
}
0x10
2451 / 1623 / 238
Регистрация: 24.11.2012
Сообщений: 3,993
01.03.2014, 15:20     Не работает создание обьекта #6
Hint: список инициализации.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
01.03.2014, 15:21     Не работает создание обьекта #7
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
#include <stdio.h>
 
struct Point
{
    float x, y, z;   
    Point() {
        x=0;
        y=0;
        z=0;
    }
    Point(float _x, float _y, float _z)
    {
        x = _x;
        y = _y;
        z = _z;
    }
};
 
struct Vec2
{
    Point p1;
    Vec2() {
        p1 = Point(1,2,3);
    }
};
 
int main()
{
    Vec2 v;
    printf("%3.1f %3.1f %3.1f\n", v.p1.x, v.p1.y, v.p1.z);
}
например
DrOffset
6819 / 4030 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
01.03.2014, 15:26     Не работает создание обьекта #8
Цитата Сообщение от programina Посмотреть сообщение
C++
1
2
3
4
struct Vec2
{
    Point p1( 150.0f, 0.0f, 150.0f );
}
;
И не должно это работать.
Вот:
C++
1
2
3
4
5
struct Vec2
{
    Point p1;
    Vec2() : p1(150.0f, 0.0f, 150.0f) {}
}
Либо как gray_fox показал (С++11), нужна последняя студия.
programina
 Аватар для programina
1912 / 597 / 37
Регистрация: 23.10.2011
Сообщений: 4,468
Записей в блоге: 2
01.03.2014, 15:37  [ТС]     Не работает создание обьекта #9
zss, спасибо, так работает.

Добавлено через 1 минуту
Цитата Сообщение от DrOffset Посмотреть сообщение
нужна последняя студия
А что там? Уже есть поддержка C++11?
DrOffset
6819 / 4030 / 924
Регистрация: 30.01.2014
Сообщений: 6,847
01.03.2014, 15:40     Не работает создание обьекта #10
Цитата Сообщение от programina Посмотреть сообщение
Уже есть поддержка C++11?
Насколько я знаю - не полностью. Но попробовать уже есть много чего
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2014, 15:40     Не работает создание обьекта
Еще ссылки по теме:

Дескриптор обьекта C++
Возвращение обьекта из шаблона C++
C++ Взятие обьекта по адресу в памяти
Инициализация обьекта класса списком C++ C++
C++ Исключительный доступ обьекта к полям другого обьекта avr/c++

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

Или воспользуйтесь поиском по форуму:
gray_fox
What a waste!
 Аватар для gray_fox
1253 / 1136 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
01.03.2014, 15:40     Не работает создание обьекта #11
Цитата Сообщение от programina Посмотреть сообщение
А что там?
http://msdn.microsoft.com/en-us/library/hh567368.aspx
Yandex
Объявления
01.03.2014, 15:40     Не работает создание обьекта
Ответ Создать тему
Опции темы

Текущее время: 23:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru