Вызов функций членства в основном C++

Для вашей первой проблемы, я бы попробовал expand_limits(). Если у вас есть столбец только для времени, то должно сработать что-то вроде этого:

ggplot(...) +
geom_point(...) +
expand_limits(x =c(hms::as.hms("00:00:00"),hms::as.hms("23:59:00")))

альтернативно, вам нужно определить дату и время для пределы.

Вот две альтернативы с маркировкой сеанса именем пользователя

# create a named vector for the legend
user <- user_tmp %>% pull(username)
names(user) <- user_tmp$SessionId

# alternative one multiple days in a chart 
# own column for times needs to be converted into a time
DATA <- DATA %>% 
  mutate(TimeLastUpdate = hms::as.hms(TimeLastUpdate))

# alternative one plot with times column
DATA %>% 
  ggplot(aes(x = TimeLastUpdate, y = TotalBandwidth, color = 
  SessionIdFac)) +
  geom_line() +
  expand_limits(x =c(hms::as.hms("00:00:00"),hms::as.hms("23:59:00"))) + #expand limits on the time
  scale_color_discrete(labels = user) # labels the sessions with the user name

  # alternative 2 plotting one day with datetime column
  DATA %>% 
   filter(DateLastUpdate == "2019-03-22") %>%  # filter on the day
   ggplot(aes(x = DateTimeLastUpdate, y = TotalBandwidth, color = SessionIdFac )) +
   geom_line() +
   expand_limits(x = c(as.POSIXct("2019-03-22 00:00:00"),  
   as.POSIXct("2019-03-22 23:59:00"))) + # expand limits for the day
   scale_color_discrete(label = user) # label the sessions with user name
.
9
задан 11 revs, 8 users 29% 28 July 2012 в 19:40
поделиться

5 ответов

Объявите экземпляр MyClass и затем назовите функцию членства на том экземпляре:

MyClass m;

m.printInformation();
31
ответ дан 4 December 2019 в 05:52
поделиться

От Вашего вопроса неясно, хотите ли Вы смочь, используют класс без идентификационных данных или если вызов метода требует, чтобы Вы создали экземпляр класса. Это зависит от того, хотите ли Вы, чтобы printInformation участник записал немного общей информации или более конкретный относительно объектных идентификационных данных.

Случай 1: Вы хотите использовать класс, не создавая экземпляр. Члены того класса должны быть статичными, с помощью этого ключевого слова, Вы говорите компилятору, что хотите смочь назвать метод, не имея необходимость создавать новый экземпляр класса.

class MyClass
{
public:
    static void printInformation();
};

Случай 2: Вы хотите, чтобы класс имел экземпляр, сначала необходимо создать объект так, чтобы класс имел идентификационные данные, после того как это сделано, можно использовать объект его методы.

Myclass m;
m.printInformation();

// Or, in the case that you want to use pointers:
Myclass * m = new Myclass();
m->printInformation();

Если Вы не знаете, когда использовать указатели, прочитайте сводку Pukku в этом вопросе о Переполнении стека.
Обратите внимание на то, что в текущем случае Вам не был бы нужен указатель.:-)

15
ответ дан 4 December 2019 в 05:52
поделиться

Если Вы хотите заставить свой код работать как выше, функция printInformation () должна быть объявлена и реализована как статическая функция.

Если с другой стороны, это, как предполагается, печатает информацию о конкретном объекте, необходимо создать объект сначала.

17
ответ дан 4 December 2019 в 05:52
поделиться

Необходимо создать объект с тех пор printInformation() нестатично. Попытка:

int main() {

MyClass o;
o.printInformation();

fgetc( stdin );
return(0);

}
3
ответ дан 4 December 2019 в 05:52
поделиться

объявите это "статичный" как это:

static void MyClass::printInformation() { return; }
2
ответ дан 4 December 2019 в 05:52
поделиться
Другие вопросы по тегам:

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