Size: a a a

2020 August 18

AF

Aidar Fattakhov in supapro.cxx
Vladimir Suisei
А почему этого оператора нет?
потомучто это передача владения
источник

AF

Aidar Fattakhov in supapro.cxx
а вот почему нет operator=(T*&&) хз
источник

SP

Sergey Piskunov in supapro.cxx
Ребят, подскажите такой момент, есть код
INT_PTR CSomeDialog::DoModal() throw() {
try {
return CDialog::DoModal();
}
catch(...) {
GUI::ShowDialog(_T("IDS_ERROR");
CDialog::OnCancel();
return IDCANCEL;
}

в блоке try происходит исключительная ситуация, а как определить какого типа бросилось исключение?
источник

C

CodeDetector in supapro.cxx
Sergey Piskunov
Ребят, подскажите такой момент, есть код
INT_PTR CSomeDialog::DoModal() throw() {
try {
return CDialog::DoModal();
}
catch(...) {
GUI::ShowDialog(_T("IDS_ERROR");
CDialog::OnCancel();
return IDCANCEL;
}

в блоке try происходит исключительная ситуация, а как определить какого типа бросилось исключение?
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
источник

SH

Serhii Herashchenko in supapro.cxx
Sergey Piskunov
Ребят, подскажите такой момент, есть код
INT_PTR CSomeDialog::DoModal() throw() {
try {
return CDialog::DoModal();
}
catch(...) {
GUI::ShowDialog(_T("IDS_ERROR");
CDialog::OnCancel();
return IDCANCEL;
}

в блоке try происходит исключительная ситуация, а как определить какого типа бросилось исключение?
catch (const Exception& e)
источник

SH

Serhii Herashchenko in supapro.cxx
будет исключение типа Exception
источник

SP

Sergey Piskunov in supapro.cxx
ага
источник

SP

Sergey Piskunov in supapro.cxx
ок, спасибо
источник

A

Astar in supapro.cxx
Не очень понимаю как работать с указателями.
Вот к примеру у меня есть переменная в файле main.cpp с именем leds

CRGB leds[NUM_LEDS];

Затем в каком то другом классе мне нужно получить доступ к этой переменной:

class SimpleClass {

private:
 CRGB _leds;
public:
 SimpleClass(CRGB *leds);  
};

Типа мы в main.cpp создали объект и передали туда переменную leds.

SimpleClass simple(leds);

А как потом в SimpleClass с ней работать? Не очень понимаю синтаксис.
источник

C

CodeDetector in supapro.cxx
Astar
Не очень понимаю как работать с указателями.
Вот к примеру у меня есть переменная в файле main.cpp с именем leds

CRGB leds[NUM_LEDS];

Затем в каком то другом классе мне нужно получить доступ к этой переменной:

class SimpleClass {

private:
 CRGB _leds;
public:
 SimpleClass(CRGB *leds);  
};

Типа мы в main.cpp создали объект и передали туда переменную leds.

SimpleClass simple(leds);

А как потом в SimpleClass с ней работать? Не очень понимаю синтаксис.
Оберните код в теги: 3 символа ` до и после кода (в случае одиночной конструкции достаточно 1 ` с обеих сторон). Спасибо!
источник

A

Astar in supapro.cxx
Не очень понимаю как работать с указателями.
Вот к примеру у меня есть переменная в файле main.cpp с именем leds

CRGB leds[NUM_LEDS];


Затем в каком то другом классе мне нужно получить доступ к этой переменной:
class SimpleClass {

private:
 CRGB _leds;
public:
 SimpleClass(CRGB *leds);  
};

Типа мы в main.cpp создали объект и передали туда переменную leds.

SimpleClass simple(leds);


А как потом в SimpleClass с ней работать? Не очень понимаю синтаксис.
источник

BB

Bohdan Bessonov in supapro.cxx
Astar
Не очень понимаю как работать с указателями.
Вот к примеру у меня есть переменная в файле main.cpp с именем leds

CRGB leds[NUM_LEDS];


Затем в каком то другом классе мне нужно получить доступ к этой переменной:
class SimpleClass {

private:
 CRGB _leds;
public:
 SimpleClass(CRGB *leds);  
};

Типа мы в main.cpp создали объект и передали туда переменную leds.

SimpleClass simple(leds);


А как потом в SimpleClass с ней работать? Не очень понимаю синтаксис.
leds[0] = ...
источник

Е

Егор in supapro.cxx
Astar
Не очень понимаю как работать с указателями.
Вот к примеру у меня есть переменная в файле main.cpp с именем leds

CRGB leds[NUM_LEDS];


Затем в каком то другом классе мне нужно получить доступ к этой переменной:
class SimpleClass {

private:
 CRGB _leds;
public:
 SimpleClass(CRGB *leds);  
};

Типа мы в main.cpp создали объект и передали туда переменную leds.

SimpleClass simple(leds);


А как потом в SimpleClass с ней работать? Не очень понимаю синтаксис.
размер еще передать нужно, а так просто берешь и
for (int i = 0; i < size;++i) 
{
 std::cout << leds[i];
}
источник

A

Astar in supapro.cxx
Bohdan Bessonov
leds[0] = ...
Ну то есть в SimpleClass() передать вторым параметром размер и в инициализации присвоить?
SimpleClass(CRGB *leds, int numLeds);
А вот символ амперсанда в каком случае тогда?
источник

Е

Егор in supapro.cxx
Astar
Ну то есть в SimpleClass() передать вторым параметром размер и в инициализации присвоить?
SimpleClass(CRGB *leds, int numLeds);
А вот символ амперсанда в каком случае тогда?
& - взятие адреса, указатель это переменная которая хранит адреса
int i = 0;
int * ptr = &i;
источник

D

Dmitriy in supapro.cxx
Егор
& - взятие адреса, указатель это переменная которая хранит адреса
int i = 0;
int * ptr = &i;
Точнее, обращение к operator &()😁
источник

AS

Anatoly Shirokov in supapro.cxx
Astar
Ну то есть в SimpleClass() передать вторым параметром размер и в инициализации присвоить?
SimpleClass(CRGB *leds, int numLeds);
А вот символ амперсанда в каком случае тогда?
Массив автоматически приводится к указателю на свой первый элемент при передаче в качестве указателя.
источник

SH

Serhii Herashchenko in supapro.cxx
Astar
Не очень понимаю как работать с указателями.
Вот к примеру у меня есть переменная в файле main.cpp с именем leds

CRGB leds[NUM_LEDS];


Затем в каком то другом классе мне нужно получить доступ к этой переменной:
class SimpleClass {

private:
 CRGB _leds;
public:
 SimpleClass(CRGB *leds);  
};

Типа мы в main.cpp создали объект и передали туда переменную leds.

SimpleClass simple(leds);


А как потом в SimpleClass с ней работать? Не очень понимаю синтаксис.
массивы в с++ - это не обьекты в привычном понимании этого слова, и работать с ними как с обьектами не выйдет. Это очень комплексная тема, и сразу ее понять или обьяснить не выйдет. Имя массива неявно приводится к указателю на первый елемент, когда передается в функцию, так что если хочешь работать с массивом, то функция должна выглядеть так:

void foo(int* arr, size_t size)
{
   for (size_t i = 0; i < size; ++i)
   {
       // do smth with arr[i]
   }
}


а вызывать ее следовательно надо

int arr[5];
foo(arr, 5);
источник

Е

Егор in supapro.cxx
Dmitriy
Точнее, обращение к operator &()😁
в обучении такое не надо
источник

A

Astar in supapro.cxx
Егор
& - взятие адреса, указатель это переменная которая хранит адреса
int i = 0;
int * ptr = &i;
& в каком случае может понадобиться?
источник