У меня есть абстрактный базовый класс (B), из которого я получил класс (D) с вложенной структурой (N).
Внутри вложенной структуры у меня есть два члена: одна строка (s) и одна строка стиля C (c_s). Этим двум элементам конструктор присваивает одно и то же значение (я использую функцию c_str для преобразования строки в const char*).
В конструкторе строка в стиле C в порядке.
В основном я могу получить доступ к строке, но не могу получить строку в стиле C.
Я проверяю адрес, он один и тот же в конструкторе и в основном.
Конечно, так и есть. что-то пропустил... но что?
PS: Я начинаю изучать C++, возможно, я не очень хорошо понял ссылки и указатели.
#include
#include
// Base class (abstract)
class B{
public:
B();
virtual ~B();
virtual void func() = 0;
};
// Derived class
class D : B {
// Nested structure in derived class
struct N{
N();
N(std::string val);
// Two public members
std::string s = "Test"; // Default value
const char * c_s;
};
public:
D();
D(std::string val);
void func();
N st;
};
// Constructors / destructors
B::B(){};
B::~B(){};
D::D(){};
D::D(std::string val):st(val){};
D::N::N(){};
D::N::N(std::string val){
s = val;
c_s = val.c_str();
std::cout
Подробнее здесь: https://stackoverflow.com/questions/798 ... tring-char
Как я могу получить строку стиля C (char*)? [дубликат] ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1765964583
Anonymous
У меня есть абстрактный базовый класс (B), из которого я получил класс (D) с вложенной структурой (N).
Внутри вложенной структуры у меня есть два члена: одна строка (s) и одна строка стиля C (c_s). Этим двум элементам конструктор присваивает одно и то же значение (я использую функцию c_str для преобразования строки в const char*).
В конструкторе строка в стиле C в порядке.
В основном я могу получить доступ к строке, но не могу получить строку в стиле C.
Я проверяю адрес, он один и тот же в конструкторе и в основном.
Конечно, так и есть. что-то пропустил... но что?
PS: Я начинаю изучать C++, возможно, я не очень хорошо понял ссылки и указатели.
#include
#include
// Base class (abstract)
class B{
public:
B();
virtual ~B();
virtual void func() = 0;
};
// Derived class
class D : B {
// Nested structure in derived class
struct N{
N();
N(std::string val);
// Two public members
std::string s = "Test"; // Default value
const char * c_s;
};
public:
D();
D(std::string val);
void func();
N st;
};
// Constructors / destructors
B::B(){};
B::~B(){};
D::D(){};
D::D(std::string val):st(val){};
D::N::N(){};
D::N::N(std::string val){
s = val;
c_s = val.c_str();
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79849257/how-can-i-retrieve-my-c-style-string-char[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия