Как правильно перегрузиться <<оператор для ostream?

Вы получаете предупреждение

Предупреждение: setcookie () ожидает, что параметр 2 будет строкой, а массив указан в /index.php в строке 24

blockquote>

потому что функция PHP setcookie () принимает строку в качестве второго параметра. Поэтому, если вы хотите сохранить какие-либо значения массива, например, $rov, вы можете использовать json_encode($rev); для установки cookie, для доступа к нему вы можете использовать json_decode(

Вы получаете предупреждение

Предупреждение: setcookie () ожидает, что параметр 2 будет строкой, а массив указан в /index.php в строке 24

blockquote>

потому что функция PHP setcookie () принимает строку в качестве второго параметра. Поэтому, если вы хотите сохранить какие-либо значения массива, например, [112], вы можете использовать [113] для установки cookie, для доступа к нему вы можете использовать [114]

. Это способ установить и получить cookie для [ 1115] Массив значений с использованием json_encode () и json_decode ()

Настройка Cookie

setcookie('cookie', json_encode($rov), time()+3600);

Получение Cookie

$data = json_decode(

Вы получаете предупреждение

Предупреждение: setcookie () ожидает, что параметр 2 будет строкой, а массив указан в /index.php в строке 24

blockquote>

потому что функция PHP setcookie () принимает строку в качестве второго параметра. Поэтому, если вы хотите сохранить какие-либо значения массива, например, $rov, вы можете использовать json_encode($rev); для установки cookie, для доступа к нему вы можете использовать json_decode(

Вы получаете предупреждение

Предупреждение: setcookie () ожидает, что параметр 2 будет строкой, а массив указан в /index.php в строке 24

blockquote>

потому что функция PHP setcookie () принимает строку в качестве второго параметра. Поэтому, если вы хотите сохранить какие-либо значения массива, например, [112], вы можете использовать [113] для установки cookie, для доступа к нему вы можете использовать [114]

. Это способ установить и получить cookie для [ 1115] Массив значений с использованием json_encode () и json_decode ()

Настройка Cookie

[110]

Получение Cookie

[111]COOKIE['cookie'],1);

. Это способ установить и получить cookie для [ 1115] Массив значений с использованием json_encode () и json_decode ()

Настройка Cookie

[110]

Получение Cookie

[111]COOKIE['cookie'], true);
COOKIE['cookie'],1);

. Это способ установить и получить cookie для [ 1115] Массив значений с использованием json_encode () и json_decode ()

Настройка Cookie

[110]

Получение Cookie

[111]

223
задан Agnel Kurian 24 August 2012 в 05:06
поделиться

3 ответа

Вы объявили свою функцию как friend. Это не член класса. Необходимо удалить Matrix:: из реализации. friend средства, что указанная функция (который не является членом класса) может получить доступ к переменным члена парламента, не занимающего официального поста. Путем Вы реализовали функцию, похож на метод экземпляра для Matrix класс, который является неправильным.

120
ответ дан Mehrdad Afshari 23 November 2019 в 03:59
поделиться

Просто говоря Вам о еще одной возможности: Мне нравится использовать друга определения для этого:

namespace Math
{
    class Matrix
    {
    public:

        [...]

        friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix) {
            [...]
        }
    };
}

функция будет автоматически предназначена в окружающее пространство имен Math (даже при том, что его определение появляется в рамках того класса), но не будет видимо, если Вы не называете operator< < с Матричным объектом, который заставит зависимый поиск аргумента найти то определение оператора. Это может иногда помогать с неоднозначными вызовами, так как это невидимо для типов аргумента кроме Матрицы. При записи его определения можно также обратиться непосредственно к именам, определенным в Матрице и к самой Матрице, не квалифицируя имя с некоторыми возможно длинный префикс и обеспечив шаблонные параметры как Math::Matrix<TypeA, N>.

134
ответ дан Johannes Schaub - litb 23 November 2019 в 03:59
поделиться

Добавить к ответу Mehrdad,

namespace Math
{
    class Matrix
    {
       public:

       [...]


    }   
    std::ostream& operator<< (std::ostream& stream, const Math::Matrix& matrix);
}

В Вашей реализации

std::ostream& operator<<(std::ostream& stream, 
                     const Math::Matrix& matrix) {
    matrix.print(stream); //assuming you define print for matrix 
    return stream;
 }
74
ответ дан kal 23 November 2019 в 03:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: