Отрицание от символа до предыдущего пробела

Когда объекту класса Derived присвоен объект Base class Object, все члены объекта производного класса копируются в объект базового класса, за исключением членов, которых нет в базовом классе. Эти члены удаляются компилятором. Это называется Object Slicing.

Вот пример:

#include<bits/stdc++.h>
using namespace std;
class Base
{
    public:
        int a;
        int b;
        int c;
        Base()
        {
            a=10;
            b=20;
            c=30;
        }
};
class Derived : public Base
{
    public:
        int d;
        int e;
        Derived()
        {
            d=40;
            e=50;
        }
};
int main()
{
    Derived d;
    cout<<d.a<<"\n";
    cout<<d.b<<"\n";
    cout<<d.c<<"\n";
    cout<<d.d<<"\n";
    cout<<d.e<<"\n";


    Base b = d;
    cout<<b.a<<"\n";
    cout<<b.b<<"\n";
    cout<<b.c<<"\n";
    cout<<b.d<<"\n";
    cout<<b.e<<"\n";
    return 0;
}

Он будет генерировать:

[Error] 'class Base' has no member named 'd'
[Error] 'class Base' has no member named 'e'
1
задан baudsp 28 March 2019 в 17:07
поделиться

1 ответ

Вы можете использовать

%{DATE:date}\s%{TIME:time}\su=(?<user>\w+)\s\|\s*TASK\s*\[(?<task>[^\]=]*)\s\w+=

См. Демонстрацию regex

Интересует часть (?<task>[^\]=]*)\s\w+=:

  • [ 112] - Группа с именем "task": [^\]=]* соответствует любым 0+ символам, кроме ] и =
  • \s - один пробел
  • \w+ - 1+ слово chars
  • = - = символ
0
ответ дан Wiktor Stribiżew 28 March 2019 в 17:07
поделиться
Другие вопросы по тегам:

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