文字列を取得して文字配列に変換し、プライベート変数に保存する新しいクラスを作成したいと考えています。その内容を変更できるようにしたいのでconst char*
、変換しようとしています。char*
class MyClass {
public:
MyClass (const char* input) {
// convert input to char* and assign it to carray
}
private:
char carray[];
};
int main() {
MyClass mc = "StackOverflow";
}
コンストラクターがさまざまな方法 ( 、 など) で引数を取る方法を変更しましたstring& input
がinput.c_str()
、それらはすべて以下のいずれかのエラーで失敗しました。
error: conversion from ‘const char [14]’ to non-scalar type ‘MyClass’ requested
error: request for member ‘c_str’ in ‘s’, which is of non-class type ‘const char*’
error: invalid conversion from ‘const char*’ to ‘char*’ [-fpermissive]
error: incompatible types in assignment of ‘const char*’ to ‘char [0]’
SOでいくつかの例を見ましたが、まだわかりませんでした。これどうやってするの?