Вопросы по теме 'static-cast'
Доступ к членам подкласса из указателя суперкласса C++
У меня есть массив пользовательских объектов класса Student. И CourseStudent, и ResearchStudent наследуются от Student, и все экземпляры Student являются одним из них.
У меня есть функция для просмотра массива, определения подтипа каждого...
16682 просмотров
schedule
31.07.2023
reinterpret_cast для почти данных модуля (достаточно ли совместимости макета)
Я пытаюсь узнать о static_cast и reinterpret_cast .
Если я прав, стандарт (9.2.18) говорит, что reinterpret_cast для данных pod безопасен:
Указатель на объект POD-struct, надлежащим образом преобразованный с использованием...
1270 просмотров
schedule
20.07.2022
интерпретировать неподписанный как подписанный
Я работаю над встроенной платформой (ARM) и должен быть осторожен при работе с битовыми шаблонами. Давайте представим, что эта строка находится вне моего влияния:
uint8_t foo = 0xCE; // 0b11001110
Интерпретируется как беззнаковое,...
3066 просмотров
schedule
04.09.2022
Упаковать указатель объекта класса в char * для очереди сообщений
Можно ли правильно и безопасно передать указатель объекта класса через очередь сообщений POSIX?
Например,
Object *obj = new Object();
mq_send(mqdes, static_cast<char*>&obj, sizeof(obj), 1);
а на принимающей стороне выполнить...
1284 просмотров
schedule
28.01.2023
Почему небезопасное приведение с использованием оператора static_cast не приводит к сбою?
Рассмотрим следующий пример кода.
#include <iostream>
using namespace std;
class base
{
public:
void func()
{
cout << "base::func()" << endl;
}
};
class derived : public base
{
public:...
1425 просмотров
schedule
24.12.2022
Вопросы о static_cast
Я написал фрагмент кода, но меня смущает его вывод:
#include <iostream>
using namespace std;
class B{
public:
virtual void foo() {cout << "B::foo" << endl;}
};
class D:public B{
public:
virtual void foo() {cout...
497 просмотров
schedule
28.08.2022
Приведение типов С++ от double к const int работает неправильно
У меня есть переменная типа const int, но параметры, от которых она зависит, имеют тип double. Когда я пытаюсь преобразовать это из «двойного» в «константное целое», это не работает должным образом. Например, когда N должно быть 991, оно вводится...
1255 просмотров
schedule
03.10.2022
Может ли static_cast того же типа привести к накладным расходам во время выполнения?
У меня есть шаблон структуры, который принимает два типа ( T и S ) и в какой-то момент использует static_cast для преобразования из одного типа в другой. Часто бывает так, что T и S относятся к одному и тому же типу.
Упрощенный пример...
2402 просмотров
schedule
20.05.2022
Почему этот static_cast не разрешен?
У меня есть объект класса A, который я хочу разместить в пользовательском объекте стека. Для этого я просто перемещаю указатель стека на столько байтов, сколько имеет размер объекта, и возвращаю его предыдущее значение:
class A : public B {}; //B...
11021 просмотров
schedule
28.04.2023
Могу ли я преобразовать unsigned char* в unsigned int*?
error: invalid static_cast from type ‘unsigned char*’ to type ‘uint32_t* {aka unsigned int*}’
uint32_t *starti = static_cast<uint32_t*>(&memory[164]);
Я выделил массив символов и хочу прочитать 4 байта как 32-битное целое число,...
7567 просмотров
schedule
30.09.2022
специальное правило static_cast
Я прочитал правила static_cast .
static_cast< new_type > ( expression )
...
...
5) Если существует неявная последовательность преобразования из new_type в тип выражения, которая не включает lvalue-to-rvalue, массив-указатель,...
203 просмотров
schedule
20.10.2022
Явный конструктор и static_cast
struct Foo
{
explicit Foo(int a):m(a){}
int padd1, m, padd2;
};
void Bar(Foo){}
int main()
{
Bar(11); // OK, gives error
auto x = static_cast<Foo>(37);
x.m;
}
Это нормально, что static_cast создает объект Foo ,...
1013 просмотров
schedule
28.04.2024
static_cast родительского класса в дочерний класс С++
Результатом этой программы является «Метод B». Как экземпляр родительского объекта может вызвать функцию дочернего класса через static_cast?
Чтобы еще больше запутать ситуацию, если я сделаю метод() виртуальным, то этот код выведет «Метод А»....
536 просмотров
schedule
10.09.2022
static_cast Конструктор преобразования против оператора преобразования
Прочитав это , я попытался выполнить такое преобразование с помощью static_cast :
class A;
class B {
public:
B(){}
B(const A&) //conversion constructor
{
cout << "called B's...
989 просмотров
schedule
05.08.2023
qt5: подключить сигнал перегрузки и функцию слота с помощью static_cast
Моя среда: Qt5.5 + QtCreator3.5 + OSX10.11
Я знаю, что синтаксис функции connect в qt5 и qt4 отличается, и посмотрите документ, чтобы выяснить, как использовать connect() в qt5 для работы с перегрузкой функции сигнала/слота.
Я делаю, как...
633 просмотров
schedule
09.09.2022
Зависит ли static_cast от реализации ограниченных типов?
Я смотрю на static_cast с ограниченными типами .
Является ли поведение специфичным для реализации? Другими словами (с учетом 16-битных шорт и 32-битных длин)
long x = 70000;
short y = static_cast<short>(x);
гарантированно даст y =...
81 просмотров
schedule
06.02.2023
Перегрузка эталонного приведения C++ (понижающее наследование)
Можно ли перегрузить приведение ссылок в C++?
У меня есть код, который я не могу трогать в формате:
void someMethod(Parent& parentReference, ...){
...
Child& child = static_cast<Child&>(parentReference);
(Класс...
376 просмотров
schedule
03.09.2022
Приведение std::vector в стиле C
Я наткнулся на эту реализацию в существующей кодовой базе, когда пытался найти решение для приведения std::vector<Derived *> к std::vector<Base *> . Я использую С++11.
Рассмотрим следующий фрагмент кода:
#include...
235 просмотров
schedule
09.03.2023
Почему я должен переинтерпретировать указатели указателей?
Таким образом, этот static_cast код полностью легален:
int n = 13;
void* pn = static_cast<void*>(&n);
void** ppn = &pn;
Тем не менее, это должно быть преобразовано в reinterpret_cast для компиляции:
int n = 13;
int* foo...
627 просмотров
schedule
24.02.2023
В чем разница между static_cast‹size_t›(i) и size_t(i) в конструкторе std::vector?
Хотя я много лет программировал на C++, я относительно новичок в стандартной библиотеке (и во многих других современных функциях C++). Просматривая свой код и реализуя std::vector (особенно для использования в параллелизации), я наткнулся на...
612 просмотров
schedule
21.01.2024