(*root)->next.push_back(node);
bool Syntax::On_BG(Node * root)
bool Syntax::On_BG(Node & root)
#include <iostream>
#include <memory>
#include <vector>
class Base{
public:
// Нужен виртуальный деструктор, ведь мы будем уничтожать детей
// через родительский ук-ль. Да и dynamic_cast требует RTTI,
// а значит, хоть одного виртуального.
virtual ~Base() = default;
};
class Exp: public Base
{
int i=0;
public:
int Get() const { return i; }
void Set(const int &num) { i=num; }
};
std::vector<std::shared_ptr<Base>> MyStack;
Base &GetRef() { return **MyStack.begin(); }
int main() {
std::shared_ptr<Exp> a = std::make_shared<Exp>();
a->Set(4);
MyStack.push_back(a);
int res=dynamic_cast<Exp&>(GetRef()).Get(); // Теперь работает
std::cout << res << std::endl;;
}
Content-Disposition: inline;filename=somefile.ext
Content-Disposition: attachment;filename=somefile.ext
#include <iostream>
#include <conio.h>
int main()
{
setlocale(LC_ALL, "Russian");
const size_t SIZE = 3000000000ul;
char* ptr = NULL;
try
{
ptr = new char[SIZE];
std::cout << "Память используется без сбоев.\n";
}
catch (std::bad_alloc&)
{
std::cout << "Исключение bad_alloc: невозможно разместить данные в памяти.\n";
}
delete[] ptr;
getch();
return 0;
}
String s3 = "Нас обманули, расходимся.";
означает вот что. Мы создаёт временную строку «Нас обманули, расходимся», а затем присваиваем её нашему s3. Конечно, компилятор это потом заоптимизирует, но это семантика языка, и ей надо следовать.String(const String &S)
.String(String &&S)
.class String
{
public:
String() {}
String& operator= (String& s) { return *this; }
};
String operator+ (String a, String b) { return String(); }
int main()
{
String s1;
String s2 = s1;
String s4;
s4 = s1 + s2;
}
String& operator= (const String& s)
. namespace {
// Пока делегат стандартный, использую шаблон «Паблик Морозов».
// Если нет — он сам и будет Морозовым.
class QStyledItemDelegateMorozov : public QStyledItemDelegate {
public:
using QStyledItemDelegate::initStyleOption;
};
}
void SomeReport::autoResize()
{
QHeaderView* header = table->horizontalHeader();
QStyledItemDelegateMorozov* delegate =
reinterpret_cast<QStyledItemDelegateMorozov*>(
dynamic_cast<QStyledItemDelegate*>(table->itemDelegate()));
QStyle* style = table->style();
QStyleOptionViewItem option;
for (int col = 0; col < model.columnCount(); ++col) {
QModelIndex index = model.index(0, col);
delegate->initStyleOption(&option, index);
option.text = "12345678901234";
int headerSize = header->sectionSizeHint(col);
int cellSize = style->sizeFromContents(
QStyle::CT_ItemViewItem, &option, QSize(), table).width();
table->setColumnWidth(col, std::max(headerSize, cellSize));
}
}