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

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

Войти
Регистрация
Восстановить пароль
 
Raynor585
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 13
#1

Приведение типов - C++

28.07.2015, 11:30. Просмотров 211. Ответов 3
Метки нет (Все метки)

Доброго времени суток.

Пусть имеются две структуры
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct Student
{
    string FirstName;
    string LastName;
    int year;
};
 
struct Person
{
    char* FirstName;
    char* LastName;
    int age;
};
 
int main()
{
    Person p;
    Student st;
 
    return 0;
}
Как правильно присвоить переменной st (типа Student) значение переменной p (типа Person)?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.07.2015, 11:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Приведение типов (C++):

Приведение типов. - C++
Доброго времени суток! В общем, есть класс Matrix(прямоугольные над полем вещ. чисел). Необходимо реализовать приведение типов Matrix...

Приведение типов - C++
В чем различие привидения типа (type)expression, от type(expression)?

приведение типов - C++
Объясните, пожалуйста, почему возникает такая ошибка: error C2666: 'operator *' : 4 overloads have similar conversions ? Из-за того,...

Приведение типов. - C++
Столкнулся с задачей считывания данных из символьного массива с дальнейшим отбором из всего этого чисел и перезаписи их в массив типа...

Приведение типов - C++
в GUI ни int str = static_convert<int>(Edit1->Text) ни int str = (int)Edit1->Text не приводит : E2034 Cannot convert...

Приведение типов - C++
В паскале можно привести типы: type ts = 0..9; chislo = array of ts; Как это сделать на С++?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
hoggy
Нарушитель
6589 / 2770 / 476
Регистрация: 15.11.2014
Сообщений: 6,123
Завершенные тесты: 1
28.07.2015, 11:57 #2
Цитата Сообщение от Raynor585 Посмотреть сообщение
Как правильно присвоить переменной st (типа Student) значение переменной p (типа Person)?
операция присвоения ортогональна приведению типов.

C++
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    Person p;
    Student st;
    
    st.FirstName = p.FirstName;
    st.LastName = p.LastName;
    st.year = p.age;
 
    return 0;
}
2
Raynor585
0 / 0 / 0
Регистрация: 23.04.2015
Сообщений: 13
28.07.2015, 12:49  [ТС] #3
Я не правильно наверно задал вопрос:
Для структур лучше
использовать приведение типов в стиле С:

C++
1
Student st = (Student) p;
либо испоьзовать стиль С++

C++
1
Student st = static_cast<Student>(p);
либо это по обстоятельствам и большой разницы нет?
0
hoggy
Нарушитель
6589 / 2770 / 476
Регистрация: 15.11.2014
Сообщений: 6,123
Завершенные тесты: 1
28.07.2015, 13:36 #4
Цитата Сообщение от Raynor585 Посмотреть сообщение
либо это по обстоятельствам и большой разницы нет?
в данном случае это UB
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2015, 13:36
Привет! Вот еще темы с ответами:

Приведение типов - C++
При вводе с клавиатуры s = 11 и a = 1.1, получаем 9. Результат переменной d = 10, это правильно. В чём подвох? int main() { ...

Приведение типов - C++
Добрый вечер! Реализовываю явное и не явное приведение типов. Есть два класса, сепаративных, A и B. Реализацию явного преобразования...

Приведение типов - C++
Как компилятор заставить адекватней приводить типы? (VS2012) Например: int a=-1; unsigned int b=5; if(a&gt;b){...}//Условие...

Приведение типов - C++
Есть ли какая-нибудь разница в следующих выражениях: float a = 123.4f и float a = (float)123.4


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
28.07.2015, 13:36
Ответ Создать тему
Опции темы

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