Мой ответ является в основном тем же как другими, но я думаю, что существует две других важных вещи сделать:
Объявляют виртуальный деструктор в Вашем интерфейсе или делают защищенный невиртуальный для предотвращения неопределенных поведений, если кто-то пытается удалить объект Использования типа IDemo
.
виртуальное наследование для предотвращения проблем со множественным наследованием. (Существует чаще множественное наследование, когда мы используем интерфейсы.)
И как другие ответы:
Использование интерфейс путем создания другого класса, который переопределяет те виртуальные методы.
class IDemo
{
public:
virtual void OverrideMe() = 0;
virtual ~IDemo() {}
}
Или
class IDemo
{
public:
virtual void OverrideMe() = 0;
protected:
~IDemo() {}
}
И
class Child : virtual public IDemo
{
public:
virtual void OverrideMe()
{
//do stuff
}
}
Вы можете использовать регулярные выражения точно так же, как в Java SE:
Pattern pattern = Pattern.compile(".* (Ka).*");
Matcher matcher = pattern.matcher("Manoj Kumar Kashyap");
if(matcher.matches())
{
int idx = matcher.start(1);
}
Для этого вам не нужно регулярное выражение. Я не эксперт по Java, но согласно документам Android :
public int indexOf (String string)
Ищет в этой строке первый индекс указанной строки. В поиск строки начинается с начало и движется к концу эта строка.Параметры
строка строка, которую нужно найти.Возвращает
индекс первого символ указанной строки в эта строка, -1, если указанный string is not a substring.
You'll probably end up with something like:
int index = somestring.indexOf(" Ka");
If you really need regular expressions and not just indexOf
, it's possible to do it like this
String[] split = "Manoj Kumar Kashyap".split("\\sKa");
if (split.length > 0)
{
// there was at least one match
int startIndex = split[0].length() + 1;
}